У меня есть метка времени, которая выглядит так: «2012-12-29T20: 00: 00Z». Каков наилучший способ конвертировать это в месяц и дату? Что-то вроде Dec 29
.Преобразовать временную метку с JavaScript
ответ
Использование встроенного Date
объекта.
// Date.parse parses an ISO date
var d = new Date(Date.parse('2012-12-29T20:00:00Z'));
console.log(d.toString()); // "Sat Dec 29 2012 21:00:00 GMT+0100 (Paris, Madrid)"
console.log(d.toString().substr(4, 6)); // "Dec 29"
substr
Обратите внимание, что всегда будет работать, так как дни всегда есть 3-х символов, месяца всегда 3 и даты всегда 2.
Если вы не хотите использовать substr
, нет никакого способа, чтобы получить «Дек» прямо. Вы можете играть с массивом отображения тем не менее, как следующее:
console.log(d.getMonth()); // 11
var mapping = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ];
console.log(mapping[ d.getMonth() ] + ' ' + d.getDate()); // "Dec 29"
Это имеет преимущество в том, что индексировать массива начинается с 0, так же, как d.getMonth()
.
Для поддержки IE8 из Date.parse
, я предлагаю вам использовать следующую подкладку (от ES5-shim): https://gist.github.com/303249
Я не думаю, что есть простой способ сделать это. но для этой цели есть несколько библиотек. Как этого
И если вы не заботитесь о проблеме локализации, просто использовать прототип внутреннего объекта Дейта.
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date
Я бы использовал объект Date, но мне предоставляется эта метка времени API, поэтому я должен ее преобразовать так или иначе. –
Вы имеете в виду от даты ISO до внутреннего типа даты? 'new Date ('2012-12-29T20: 00: 00Z')' будет анализировать его. – xiaoyi
Извините, так как бы я использовал этот объект, чтобы преобразовать его в мой предпочтительный формат? Скажите «Дата месяца»? –
Вы можете преобразовать строку в объект Date, используя new Date("2012-12-29T20:00:00Z")
, который в моих результатах часовых поясов в Sat Dec 29 2012 21:00:00 GMT+0100 (W. Europe Standard Time)
. Для форматирования есть несколько фреймворков времени, например datejs. Я приготовил простой in this jsfiddle, может быть отправной точкой для вас. Я добавил вашу дату ISO к примерам. Он также работает для старых браузеров.
Вам действительно нужна фреймворк, когда достаточно массива сопоставления? ; o) –
Нет, если вы хотите только «29 декабря» из строки даты. Я просто указывал на возможности – KooiInc
- 1. Как преобразовать временную метку GMT в временную метку Unix (javascript)
- 2. Преобразовать временную метку Unix в временную метку без часового пояса
- 3. Как преобразовать временную метку эпохи в текущую временную метку?
- 4. Как преобразовать временную метку в временную метку unix в php?
- 5. Преобразовать временную метку в NSDate
- 6. Преобразовать временную метку во время()
- 7. Преобразовать временную метку в alphanum
- 8. Преобразовать временную метку в Улей
- 9. Преобразовать временную метку в изображение?
- 10. Преобразовать временную метку iso в формат даты с помощью Javascript?
- 11. MYSQL Преобразовать временную метку в месяц
- 12. Преобразовать временную метку Mysql в datetime Python
- 13. Преобразовать временную метку на дату тип данных
- 14. Преобразовать временную метку в NSDate не работает
- 15. Как преобразовать строку как временную метку
- 16. Как преобразовать строку в временную метку Unix в javascript?
- 17. Попытка конвертировать временную метку с помощью javascript
- 18. Как преобразовать временную метку в удобную для пользователя временную строку
- 19. Как преобразовать временную метку oracle в postgres?
- 20. Преобразовать временную метку в формат даты
- 21. Преобразовать временную метку sys в UTC
- 22. Как преобразовать временную метку в часы?
- 23. Как преобразовать временную метку в читаемый формат
- 24. Как преобразовать временную метку в cassandra
- 25. Как преобразовать временную метку в читаемое время?
- 26. Преобразовать временную метку в часовой пояс UTC
- 27. Как преобразовать временную метку в число дней
- 28. преобразовать временную метку в Datetime в js
- 29. Как преобразовать временную метку в дни назад
- 30. C# - Как преобразовать временную метку в дату?
Спасибо. Мне нравится этот подход, потому что он легкий, и я не хочу включать в него всю библиотеку. Будет ли это работать в IE? Если нет, есть ли такой подход? –
Он работает в IE, нет причин, по которым он не должен. Массивы и индексы везде одинаковы. –
Хм, хорошо. Но @ panda-34 сказал, что «синтаксический анализ дат ISO происходит только в версии 6 ecma, что означает, что IE 8 не поддерживает его»? –