Вы можете использовать функции getUTC...
для получения частей времени UTC, а затем настроить их в соответствии с часовым поясом, который вы ищете.Вы можете получить дату UTC, а затем настроить ее, чтобы получить время EST.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCDay
// create a date based on the user's timezone
d = new Date();
// get the universal time, then remove the difference between UTC and EST, to get the EST hours
elem.innerHTML = d.getUTCHours() - 5;
Чтобы скрыть части даты, просто добавьте части в массив и объедините их, используя «:», который будет обрабатывать конкатенацию для вас без необходимости добавлять больше логики.
Вы также можете использовать длину массива для определения правильной единицы измерения
var arr_parts = [];
var hrs = (target - 1) - now.getHours();
var mins = 59 - now.getMinutes();
var secs = 59 - now.getSeconds();
if ( hrs ) {
arr_parts.push( hrs );
}
arr_parts.push( pad( mins, 2 ) );
arr_parts.push( pad( secs, 2 ) );
// number of parts to the countdown
// 3 = h:m:s
// 2 = m:s
// 1 = s
part_length = arr_parts.length;
// the biggest unit for the countdown
// so length of 1 means we need seconds at index 0)
arr_units = [ 'seconds', 'minutes', 'hours' ]
str_unit = arr_units[ part_length - 1 ];
var str = 'Order within the next <strong>'
+ arr_parts.join( ':' )
+ ' ' + str_unit
+ '</strong> to ship <strong>today</strong>.';
Вот модифицированная версияJSfiddle, который я использовал (время отключения изменилось, так что оно работает, когда я последний раз использовал скрипку) http://jsfiddle.net/gwxptbfh/