Подтвердить что ты не робот

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

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

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

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

1247634000 - 1247663783

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

JavaScript или jQuery-методы были бы замечательными! Заранее спасибо.

4b9b3361

Ответ 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;