#javascript #datetime
#javascript #дата-время
Вопрос:
Я живу по Гринвичу, и на данный момент 1 переход на летнее время, что, вероятно, имеет значение…
У меня есть веб-сервис, и он выводит дату, которая заканчивается в этом формате
‘/Date(1234567) /’
Чтобы узнать, что это за дата, я просто оцениваю ее после удаления косых черт.
Вот пример:
var jsonDate = 'Date(1304515498497)';
alert (new Date(1304515498497).toString() "n"
Date(1304515498497).toString() "n"
eval(jsonDate));
Если я добавлю перед ней new, дата изменится, и она будет неверной. Однако в моем коде, если я удаляю New, я всегда получаю сегодняшнюю дату. Это может быть следствием использования библиотеки datejs. Из того, что я вижу, выполнение eval (‘new’ date) приводит к тому, что время отстает ровно на час, но alert (), отображающий обе даты, показывает, что они обе установлены на 1 GMT и идентичны, за исключением одного часа. Я не могу понять, откуда это берется.
Есть ли какой-нибудь лучший способ сделать это? Я просто хочу преобразовать входящую дату в формате JSON в обычную дату без каких-либо 1, которые ее испортили.
Комментарии:
1. JSON ссылается не на синтаксис JavaScript в целом, а на его стандартизированное подмножество (см. json.org ). Я не верю, что этот вопрос на самом деле связан с JSON.
Ответ №1:
Если вы не поставите new
перед ним, Date().toString()
просто вернет текущее время, независимо от того, что вы поместили в скобки.
alert (Date(1).toString() "n"
Date(42).toString() "n"
Date("banana").toString()); //All return current time