Reputation: 2546
I have the following timezones:
var timezones = [
{ value: '-12.0', str: '(GMT -12:00) Eniwetok, Kwajalein' },
{ value: '-11.0', str: '(GMT -11:00) Midway Island, Samoa' },
{ value: '-10.0', str: '(GMT -10:00) Hawaii' },
{ value: '-9.0', str: '(GMT -9:00) Alaska' },
{ value: '-8.0', str: '(GMT -8:00) Pacific Time (US & Canada)' },
{ value: '-7.0', str: '(GMT -7:00) Mountain Time (US & Canada)' },
{ value: '-6.0', str: '(GMT -6:00) Central Time (US & Canada), Mexico City' },
{ value: '-5.0', str: '(GMT -5:00) Eastern Time (US & Canada), Bogota, Lima' },
{ value: '-4.0', str: '(GMT -4:00) Atlantic Time (Canada), Caracas, La Paz' },
{ value: '-3.5', str: '(GMT -3:30) Newfoundland' },
{ value: '-3.0', str: '(GMT -3:00) Brazil, Buenos Aires, Georgetown' },
{ value: '-2.0', str: '(GMT -2:00) Mid-Atlantic' },
{ value: '-1.0', str: '(GMT -1:00) Azores, Cape Verde Islands' },
{ value: '0.0', str: '(GMT) Western Europe Time, London, Lisbon, Casablanca' },
{ value: '+1.0', str: '(GMT +1:00) Brussels, Copenhagen, Madrid, Paris' },
{ value: '+2.0', str: '(GMT +2:00) Kaliningrad, South Africa' },
{ value: '+3.0', str: '(GMT +3:00) Baghdad, Riyadh, Moscow, St. Petersburg' },
{ value: '+3.5', str: '(GMT +3:30) Tehran' },
{ value: '+4.0', str: '(GMT +4:00) Abu Dhabi, Muscat, Baku, Tbilisi' },
{ value: '+4.5', str: '(GMT +4:30) Kabul' },
{ value: '+5.0', str: '(GMT +5:00) Ekaterinburg, Islamabad, Karachi, Tashkent' },
{ value: '+5.5', str: '(GMT +5:30) Bombay, Calcutta, Madras, New Delhi' },
{ value: '+5.45', str: '(GMT +5:45) Kathmandu' },
{ value: '+6.0', str: '(GMT +6:00) Almaty, Dhaka, Colombo' },
{ value: '+7.0', str: '(GMT +7:00) Bangkok, Hanoi, Jakarta' },
{ value: '+8.0', str: '(GMT +8:00) Beijing, Perth, Singapore, Hong Kong' },
{ value: '+9.0', str: '(GMT +9:00) Tokyo, Seoul, Osaka, Sapporo, Yakutsk' },
{ value: '+9.5', str: '(GMT +9:30) Adelaide, Darwin' },
{ value: '+10.0', str: '(GMT +10:00) Eastern Australia, Guam, Vladivostok' },
{ value: '+11.0', str: '(GMT +11:00) Magadan, Solomon Islands, New Caledonia' },
{ value: '+12.0', str: '(GMT +12:00) Auckland, Wellington, Fiji, Kamchatka' }
];
timezones.forEach(function(tz){
console.log(tz.value);
// Next how to calc current hour in the tz.value timezone ?
});
They go from -12 to 12. I need to loop the timezones and get the current hour for each timezone with nodejs. It is a script for a cronjob.
Upvotes: 1
Views: 8439
Reputation: 773
You could use moment.js.First take out the time from the current timezone and the get the hours.
let date = moment().tz('Asia/Kolkata').format('LLLL')
moment().get('hour');
Upvotes: 0
Reputation: 718
There is a great library called moment.js especially moment-timezone.js that will help you with timezones.
http://momentjs.com
http://momentjs.com/timezone/
All you need to do is add all the timezones that you require into an array and then loop through it.
Here is an example:
var moment = require('moment-timezone');
var timezones = ['Africa/Abidjan', 'Africa/Accra'];
timezones.forEach(function(timezone){
var now = moment().utc();
console.log(now.tz(timezone).toString());
});
EDIT:
Here is a link to all available timezones:
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
Upvotes: 2
Reputation: 16629
Without using any external dependency:
var timezones = [{
value: '-12.0',
str: '(GMT -12:00) Eniwetok, Kwajalein'
},
{
value: '-11.0',
str: '(GMT -11:00) Midway Island, Samoa'
},
{
value: '-10.0',
str: '(GMT -10:00) Hawaii'
},
{
value: '-9.0',
str: '(GMT -9:00) Alaska'
},
{
value: '-8.0',
str: '(GMT -8:00) Pacific Time (US & Canada)'
},
{
value: '-7.0',
str: '(GMT -7:00) Mountain Time (US & Canada)'
},
{
value: '-6.0',
str: '(GMT -6:00) Central Time (US & Canada), Mexico City'
},
{
value: '-5.0',
str: '(GMT -5:00) Eastern Time (US & Canada), Bogota, Lima'
},
{
value: '-4.0',
str: '(GMT -4:00) Atlantic Time (Canada), Caracas, La Paz'
},
{
value: '-3.5',
str: '(GMT -3:30) Newfoundland'
},
{
value: '-3.0',
str: '(GMT -3:00) Brazil, Buenos Aires, Georgetown'
},
{
value: '-2.0',
str: '(GMT -2:00) Mid-Atlantic'
},
{
value: '-1.0',
str: '(GMT -1:00) Azores, Cape Verde Islands'
},
{
value: '0.0',
str: '(GMT) Western Europe Time, London, Lisbon, Casablanca'
},
{
value: '+1.0',
str: '(GMT +1:00) Brussels, Copenhagen, Madrid, Paris'
},
{
value: '+2.0',
str: '(GMT +2:00) Kaliningrad, South Africa'
},
{
value: '+3.0',
str: '(GMT +3:00) Baghdad, Riyadh, Moscow, St. Petersburg'
},
{
value: '+3.5',
str: '(GMT +3:30) Tehran'
},
{
value: '+4.0',
str: '(GMT +4:00) Abu Dhabi, Muscat, Baku, Tbilisi'
},
{
value: '+4.5',
str: '(GMT +4:30) Kabul'
},
{
value: '+5.0',
str: '(GMT +5:00) Ekaterinburg, Islamabad, Karachi, Tashkent'
},
{
value: '+5.5',
str: '(GMT +5:30) Bombay, Calcutta, Madras, New Delhi'
},
{
value: '+5.45',
str: '(GMT +5:45) Kathmandu'
},
{
value: '+6.0',
str: '(GMT +6:00) Almaty, Dhaka, Colombo'
},
{
value: '+7.0',
str: '(GMT +7:00) Bangkok, Hanoi, Jakarta'
},
{
value: '+8.0',
str: '(GMT +8:00) Beijing, Perth, Singapore, Hong Kong'
},
{
value: '+9.0',
str: '(GMT +9:00) Tokyo, Seoul, Osaka, Sapporo, Yakutsk'
},
{
value: '+9.5',
str: '(GMT +9:30) Adelaide, Darwin'
},
{
value: '+10.0',
str: '(GMT +10:00) Eastern Australia, Guam, Vladivostok'
},
{
value: '+11.0',
str: '(GMT +11:00) Magadan, Solomon Islands, New Caledonia'
},
{
value: '+12.0',
str: '(GMT +12:00) Auckland, Wellington, Fiji, Kamchatka'
}
];
timezones.forEach(function(tz) {
console.log(((new Date().getUTCHours() + parseFloat(tz.value)) % 24).toFixed(2))
})
Upvotes: 4
Reputation: 29172
I recommend you momentjs
:
var newYork = moment.tz("2014-06-01 12:00", "America/New_York");
var losAngeles = newYork.clone().tz("America/Los_Angeles");
var london = newYork.clone().tz("Europe/London");
[ https://momentjs.com/timezone/ ]
Upvotes: 1