Преобразование даты и времени в отметку времени 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
Как я могу это сделать?
Ответы
Ответ 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);
наслаждаться!