Я получаю данные из канала JSON, используя jQuery, и в качестве части фида я получаю атрибуты «datetime», такие как «2009-07-01 07:30:09». Я хочу поместить эту информацию в объект Date javascript для удобства использования, но я не думаю, что объект Date распознал бы этот формат, если бы я просто подключил его к конструктору. Есть ли функция или, может быть, хитроумный трюк, который я могу использовать, чтобы быстро разбить этот формат на то, что объект Date может распознать и использовать?Есть ли простое преобразование для этого формата даты и времени?
ответ
"Датой" атрибута вы извлечение из этого веб-сервиса не является реальным Date
, так как оно не является признанным форматом даты.
Самый простой способ справиться с этим, как объект Дата будет заменить пустое пространство с «Т»:
var receivedDate = "2009-07-01 07:30:09";
var serializedDate = new Date(receivedDate.replace(" ", "T"));
alert(serializedDate);
Это не самый правильный, поскольку он не обрабатывает часовых поясов, но в большинство случаев будут работать.
Я пробовал это, но по какой-то причине это не сработает. Пространство остается пространством. –
Nevermind, он работает. Я был в предположении, что replace() влияет на строку, на которую она вызвана, а не на то, что она возвращает результат замены. Не уверен, какой язык может/делает это, но я знаю, что есть некоторые, а иногда я смешиваю вещи от языка к языку. –
input = "2009-07-01 07:30:09";
var res = input.match(/([\d\-]+) (\d+):(\d+):(\d+)/);
date = new Date(Date.parse(res[1]));
date.setHours(res[2]);
date.setMinutes(res[3]);
date.setSeconds(res[4]);
console.log(date);
Edit: Мой первоначальный ответ был
t = new Date(Date.parse("2009-07-01 07:30:09"));
, не бросать какие-либо ошибки в хроме, но все-таки неправильно обрабатывались дату. Это отбросило меня. Date.parse действительно выглядит довольно шелушащимся и анализирует полную дату и время с ним, вероятно, не очень надежным.
Редактировать2: DateJS представляется хорошим решением, когда требуется серьезный анализ текста на сегодняшний день, но при 25 kb он немного тяжелый для случайного использования.
@anshul> Это работает для вас? – bdl
Просто протестированный в firefox, я получаю «Недействительная дата». –
Nope. Пробовал делать ... $ ('# date'). Html (t.getMonth() + '/' + t.getDay()); NaN/NaN –
Это может быть немного громоздким, но объект Date JavaScript будет принимать список аргументов из YYYY, MM, DD, HH, MM, SS. Выделите значение даты и передайте его конструктору даты, например.
var splitDT= '2009-07-01 07:30:09'.split(' '); // ['2009-07-01','07:30:09']
var d= splitDT[0].split('-');
var t= splitDT[1].split(':');
alert((new Date(d[0],d[1],d[2],t[0],t[1],t[2])));
Bah. Пришлось использовать значения индекса массива. Да, это беспорядок. Но это работает.
var str = "2009-07-01 07:30:09";
Это зависит от часового пояса, , и если строка даты вычитает 1 за месяц.
Если время по Гринвичу, а 07 июля и означает не август:
уаг ул = «2009-07-01 7:30:09»;
var d=new Date(), time;
str=str.split(/\D0?/);
str[1]-=1;
time=str.splice(3);
d.setUTCFullYear.apply(d,str);
d.setUTCHours.apply(d,time)
alert(d)
/* Возвращаемое значение: (Дата) ср 1 июля 2009 3:30:09 GMT-0400 (по восточному поясному времени) или местного equivilent */
- 1. Преобразование этого формата даты
- 2. Преобразование формата даты и времени?
- 3. PHP Преобразование формата даты и времени
- 4. Преобразование формата даты/времени (PHP)
- 5. Преобразование формата даты и времени в секунды
- 6. Преобразование формата даты и времени в питона
- 7. Преобразование формата даты и времени в строку
- 8. преобразование формата даты и времени недействительной строки
- 9. Преобразование ISO8601 формата даты местному времени (IOS)
- 10. Преобразование формата даты/времени с использованием PHP
- 11. Преобразование формата даты/времени в SQL
- 12. Преобразование формата даты и времени для использования в xts
- 13. Спецификаты формата даты и времени
- 14. преобразование формата даты, чтобы исключить отметку времени
- 15. PHP Преобразование формата даты/времени в другой
- 16. Простое преобразование даты Java
- 17. Преобразование формата времени даты в Java
- 18. Преобразование формата даты iOS
- 19. PHP преобразование формата даты
- 20. Декодирование формата времени и даты
- 21. Преобразование даты и времени
- 22. Преобразование формата даты
- 23. Преобразование даты и времени
- 24. Преобразование даты и времени
- 25. Преобразование формата даты для SQL
- 26. Формат времени и преобразование формата JsonDate
- 27. Преобразование формата времени
- 28. Проблемы формата даты и времени
- 29. Ошибка формата даты и времени
- 30. получения даты и времени для пользовательского формата
Вам действительно нужно работать с датами в вашем javascript-коде? Если вы этого не сделаете, вы можете просто оставить строку такой, какой она есть. –
Да, это похоже на формат, который даже когда объект Date пытается его проанализировать, он не распознает. Учитывая, что фактическое имя свойства «datetime» и Googling, которое вызывает много ссылок MS и VB, я собираюсь предположить, что это какая-то временная метка VB или .NET. –
И да, я знаю. Мне нужно сравнить дату времени запроса с каналом JSON год назад с того времени.Я знаю, что я могу просто разбирать строку вручную, но я надеялся на то, что вы будете готово и проще. –