Как преобразовать нормальную дату 2012.08.10
в временную метку unix в javascript?
Fiddle: http://jsfiddle.net/J2pWj/
Я видел много сообщений здесь, которые конвертируют его в PHP, Ruby и т.д. Но мне нужно сделать это внутри JS.
Как преобразовать нормальную дату 2012.08.10
в временную метку unix в javascript?
Fiddle: http://jsfiddle.net/J2pWj/
Я видел много сообщений здесь, которые конвертируют его в PHP, Ruby и т.д. Но мне нужно сделать это внутри JS.
new Date('2012.08.10').getTime() / 1000
Отметьте JS Date documenation
parseInt((new Date('2012.08.10').getTime() / 1000).toFixed(0))
Важно добавить toFixed(0)
для удаления любых десятичных знаков при делении на 1000 для преобразования от миллисекунд к секундам.
Функция .getTime()
возвращает метку времени в миллисекундах, но истинные временные метки unix всегда находятся в секундах.
Вы должны проверить момент .js api, он очень прост в использовании и имеет множество встроенных функций.
Я думаю, что для вашей проблемы вы можете использовать что-то вроде этого:
var unixTimestamp = moment('2012.08.10', 'YYYY.MM.DD').unix();
Вы можете просто использовать оператор унарного +
(+new Date('2012.08.10')/1000).toFixed(0);
http://xkr.us/articles/javascript/unary-add/ - посмотрите в разделе Даты.
Вы можете использовать Date.parse(), но входные форматы, которые он принимает, зависят от реализации. Однако, если вы можете преобразовать дату в формат ISO (ГГГГ-ММ-ДД), большинство реализаций должны это понимать.
var datestr = '2012.08.10';
var timestamp = (new Date(datestr.split(".").join("-")).getTime())/1000;
var d = '2016-01-01T00:00:00.000Z';
console.log(new Date(d).valueOf()); // returns the number of milliseconds since the epoch
После сопоставления метки времени с тем из PHP, ни один из вышеперечисленных действий не подходит для моего часового пояса. Код ниже дал мне тот же результат, что и PHP, что наиболее важно для проекта, который я делаю.
function getTimeStamp(input) {
var parts = input.trim().split(' ');
var date = parts[0].split('-');
var time = (parts[1] ? parts[1] : '00:00:00').split(':');
// NOTE:: Month: 0 = January - 11 = December.
var d = new Date(date[0],date[1]-1,date[2],time[0],time[1],time[2]);
return d.getTime() / 1000;
}
// USAGE::
var start = getTimeStamp('2017-08-10');
var end = getTimeStamp('2017-08-10 23:59:59');
console.log(start + ' - ' + end);