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

Преобразование даты и времени в отметку времени Unix

Я показываю дату и время, подобные этому

24-ноя-2009 17:57:35

Я хотел бы преобразовать его в временную метку unix, чтобы я мог легко манипулировать ею. Мне нужно будет использовать регулярное выражение для соответствия каждой части строки, а затем выработать временную метку unix.

Я ужасно с regex, но я придумал это. Пожалуйста, предложите улучшения ^. ^

/((\d){2}+)-((Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)+)-((\d){4}+) ((\d){2}+):((\d){2}+):((\d){2}+)/gi

Как я могу это сделать?

4b9b3361

Ответ 1

Если вам просто нужна хорошая функция синтаксического анализа даты, я бы посмотрел на date.js. Это займет примерно любую строку даты, которую вы можете на нее набросать, и вернуть вам объект JavaScript Date.

Как только у вас есть объект Date, вы можете вызвать его метод getTime(), который даст вам миллисекунды с 1 января 1970 года. Просто разделите этот результат на 1000, чтобы получить значение временной отметки unix.

В коде просто укажите date.js, затем:

var unixtime = Date.parse("24-Nov-2009 17:57:35").getTime()/1000

Ответ 2

Кажется, что getTime не работает над ответом.

Date.parse(currentDate)/1000

Ответ 3

Вы можете использовать Date.getTime() или сам объект Date, который при делении возвращает время в миллисекундах.

var d = new Date();

d/1000
> 1510329641.84

d.getTime()/1000
> 1510329641.84

Ответ 4

Используя средство выбора даты, чтобы получить дату и время, я получаю две переменные, вот как я собираю их в формате unixtime, а затем извлекаю их...

let datetime = oDdate+' '+oDtime;
let unixtime = Date.parse(datetime)/1000;
console.log('unixtime:',unixtime);

чтобы доказать это:

let milliseconds = unixtime * 1000;
dateObject = new Date(milliseconds);
console.log('dateObject:',dateObject);

наслаждаться!