Преобразование строки даты в временную метку unix в JavaScript/jQuery
У меня есть строка даты в этом формате:
2009-07-15 00:00:00 - 2009-07-15 08:16:23
Может ли кто-нибудь помочь мне настроить строку даты на временную метку unix примерно так:
1247634000 - 1247663783
Я использую GMT-5
Часовой пояс.
JavaScript или jQuery-методы были бы замечательными!
Заранее спасибо.
Ответы
Ответ 1
var input = "2009-07-15 00:00:00 - 2009-07-15 08:16:23";
input = input.split(" - ").map(function (date){
return Date.parse(date+"-0500")/1000;
}).join(" - ");
Демо
Date.parse
docs
Примечание. Это не будет работать в старых браузерах, так как я использую Array.map
, но я думаю, вы должны легко его подделать.
Ответ 2
Я настоятельно рекомендую использовать Moment Date lib при работе с датами в js. Это действительно светло и удивительно.
var timeStamp = ( moment('2009-07-15 00:00:00').unix() )*1000
Ответ 3
в Javascript вы можете напрямую передать строку в конструктор объекта Date, например
var date = new Date('2009-07-15 00:00:00'.split(' ').join('T'))
который даст вам объект даты и получить временную метку от него, вы можете сделать
date.getTime() / 1000
деление на 1000, потому что getTime
даст отметки времени в миллисекундах
Рабочий демонстрационный пример
Примечание:
Firefox не может анализировать данный формат времени даты, поэтому нам нужно сначала преобразовать его в правильный формат, для чего нам просто нужно заменить пространство между компонентом даты и времени на "T", что сделает его действительным ISO 8601 и firefox смогут анализировать его
Ссылка:
Date.parse в MDN
Формат даты ISO 8601
Тот же вопрос задан здесь
Ответ 4
используя метод split, вы можете изменить формуляр datetime на сегодняшний день, это очень просто и легко для всех.
var str = "2017-05-09T00:00:00.000Z";
var res = str.split("-",2);
var res = str.split("T",1);
var temp=res;