Преобразование строки даты в метку времени unix в JavaScript / jQuery

у меня есть строка даты в таком формате:

2009-07-15 00:00:00 - 2009-07-15 08:16:23

может ли кто-нибудь помочь мне настроить строку даты на временную метку unix в нечто вроде этого:

1247634000 - 1247663783

Я использую GMT-5 часовой пояс.

какие методы JavaScript или jQuery можно использовать?

4 ответов


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, но я думаю, что вы должны легко быть в состоянии проколоть его.


Я настоятельно рекомендую вам использовать момент дата lib при работе с датами в js. Он действительно легкий и потрясающий.

var timeStamp = ( moment('2009-07-15 00:00:00').unix() )*1000

в 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 сможет его разобрать

ссылки:

дата.разбор в MDN

ISO 8601 формат даты

тот же вопрос задал здесь


используя метод split, вы можете изменить формат datetime на сегодняшний день, его очень просто и легко для всех.

 var str = "2017-05-09T00:00:00.000Z";
 var res = str.split("-",2);
 var res = str.split("T",1);
 var temp=res;