Я использую JavaScript и пытаюсь получить время GMT + 0 / UTC + 0 (иначе называемое временем Зулу) в формате Unix.
Мне удалось узнать свое местное время в формате Unix, например:
var datetime = new Date()
var unixtime = Math.floor(Number(datetime/1000));
но когда я пытаюсь сделать то же самое с временем UTC ...
var datetime = new Date()
var year = datetime.getUTCFullYear()
var month = datetime.getUTCMonth()
var day = datetime.getUTCDate()
var hours = datetime.getUTCHours()
var minutes = datetime.getUTCMinutes()
var seconds = datetime.getUTCSeconds()
var unixtime = (Date.UTC(year,month,day,hours,minutes,seconds,00)/1000);
не получается. Я просто получаю свое местное время в формате Unix.
Вы можете запустить его вживую здесь: http://jsfiddle.net/wC8XH/1/
(Также на наклейке: http://pastebin.com/uDD5zUah)
Это пример вывода:
2012-01-30 23:15:19 = 1327958119
2012-01-30 21:15:19 = 1327958119
Выполнение:
date -d "2012-01-30 21:15:19" +%s
в Linux дает мне 1327950919, а не 1327958119. Разница составляет 7200 секунд, то есть 2 часа, что является моим часовым поясом (+0200).
Таким образом, я могу получить время UTC + 0, если я просто хочу, чтобы оно было в удобочитаемом для человека формате, но когда я запрашиваю Date.UTC для преобразования этого в формат Unix, вместо этого он выбирает преобразовать мое местное время.
Я что-то упустил?