Как преобразовать обычную дату 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.
unix timestamp
он настолько важен для инженерии и информатики. Хотелось бы, чтобы не было встроенного удобного метода. В настоящее время используюMath.floor((+new Date()) / 1000);
Ответы:
Проверьте документацию JavaScript Date .
источник
Важно добавить,
toFixed(0)
чтобы удалить любые десятичные знаки при делении на 1000 для преобразования миллисекунд в секунды..getTime()
Функция возвращает метку времени в миллисекундах, но истинные метки времени UNIX всегда в секундах.источник
Вам следует ознакомиться с api moment.js, он очень прост в использовании и имеет множество встроенных функций.
Я думаю, что для вашей проблемы вы можете использовать что-то вроде этого:
источник
источник
Вы можете просто использовать унарный оператор +
(+new Date('2012.08.10')/1000).toFixed(0);
http://xkr.us/articles/javascript/unary-add/ - смотрите в разделе Даты.
источник
/
он уже является математическим оператором. Кроме того,toFixed
возвращает строку, а не число, если тип важен ..Вы можете использовать Date.parse () , но принимаемые форматы ввода зависят от реализации. Однако, если вы можете преобразовать дату в формат ISO (ГГГГ-ММ-ДД) , большинство реализаций должны это понимать.
См. Почему Date.parse дает неверные результаты? .
источник
В этом случае важно возвращать только целое число (поэтому простое деление не годится), а также возвращать только фактически прошедшие секунды (поэтому этот код использует,
Math.floor()
а неMath.round()
).источник
Вы можете сделать это с помощью метода Date.parse ().
Date.parse ("03.03.2016") output-> 1456959600000
Date.parse ("2015-12-12") output-> 1449878400000
источник
источник
После сравнения отметки времени с отметкой PHP ни одно из вышеперечисленных не кажется правильным для моего часового пояса. Приведенный ниже код дал мне тот же результат, что и PHP, что является наиболее важным для проекта, над которым я работаю.
Я использую это на NodeJS, и у нас есть часовой пояс «Австралия / Сидней». Итак, мне пришлось добавить это в файл .env:
Выше эквивалентно:
источник
преобразовать метку времени в метку времени unix.
const date = 1513787412; const unixDate = new Date(date * 1000);// Dec 20 2020 (object)
чтобы получить отметку времени после преобразования
const TimeStamp = new Date(date*1000).getTime(); //1513787412000
источник