Даты JavaScript: toGMTString, но также и формат ISO 8601? - PullRequest
3 голосов
/ 25 августа 2011

Есть ли простой способ преобразовать объект даты во время по Гринвичу, но также отобразить в формате ISO 8601?

Ответы [ 3 ]

4 голосов
/ 25 августа 2011

Существует ли простой способ преобразовать объект даты в время по Гринвичу

Да:

var d = new Date();
d.toGMTString()

, но также отображать в формате ISO 8601?

Функция взята форма здесь (там также есть синтаксический анализатор ISO 8601)

function ISODateString(d) {
    function pad(n) { return n<10 ? '0'+n : n }
    return      d.getUTCFullYear()
    + '-' + pad(d.getUTCMonth()+1)
    + '-' + pad(d.getUTCDate())
    + 'T' + pad(d.getUTCHours())
    + ':' + pad(d.getUTCMinutes())
    + ':' + pad(d.getUTCSeconds())
    + 'Z'
}
2 голосов
/ 08 марта 2013

Лучшее решение, с которым я столкнулся, это использовать библиотеку javascript Moment.js и использовать следующий код:

Чтобы получить текущее время ISO с информацией о часовом поясе и миллисекундах

now = moment().format("YYYY-MM-DDTHH:mm:ss.SSSZZ")
// "2013-03-08T20:11:11.234+0100"

now = moment().utc().format("YYYY-MM-DDTHH:mm:ss") + "Z"
// "2013-03-08T19:11:11Z" <- better use the native .toISOString() 

Чтобы получить время ISO собственного объекта Date JavaScript с информацией о часовом поясе, но без миллисекунд

var current_time = Date.now();
moment(current_time).format("YYYY-MM-DDTHH:mm:ssZZ")
0 голосов
/ 13 октября 2012

Вот страница MDN date.toISOString (), которая также содержит код совместимости с различными браузерами.Оба способа создают строку ISO 8601 из экземпляра даты:

MDN Page on date.toISOString ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...