Ответ 1
Try:
var date = new Date('2012-11-29 17:00:34 UTC');
date.toString();
Хорошо, скажите, что JSON разметит строку UTC, как показано ниже:
2012-11-29 17:00:34 UTC
Теперь, если я хочу преобразовать эту дату UTC в мое местное время, как я могу это сделать?
Спасибо за ответ
=====
Затем, как мне отформатировать его на что-то еще, например "yyyy-MM-dd HH: mm: ss z??
Этот date.toString('yyyy-MM-dd HH:mm:ss z');
никогда не работает:/
Try:
var date = new Date('2012-11-29 17:00:34 UTC');
date.toString();
var offset = new Date().getTimezoneOffset();
offset
будет интервалом в минутах от локального времени до UTC. Чтобы получить местное время с датой UTC, вы затем вычитаете минуты со своей даты.
utc_date.setMinutes(utc_date.getMinutes() - offset);
Это должно работать
var date = new Date('2012-11-29 17:00:34 UTC');
date.toString()
Чтобы отформатировать дату, попробуйте выполнить следующую функцию:
var d = new Date();
var fromatted = d.toLocaleFormat("%d.%m.%Y %H:%M (%a)");
Но недостатком этого является то, что это нестандартная функция, которая не работает в Chrome, но работает в FF (afaik).
Крис
Вышеприведенные решения правильные, но могут произойти сбой в FireFox и Safari! и что webility.js пытается решить. Проверьте функцию toUTC
, она работает на большинстве основных браузеров и возвращает время в формате ISO
/*
* convert server time to local time
* simbu
*/
function convertTime(serverdate) {
var date = new Date(serverdate);
// convert to utc time
var toutc = date.toUTCString();
//convert to local time
var locdat = new Date(toutc + " UTC");
return locdat;
}