Я храню время в базе данных MySQL как метку времени Unix, и оно отправляется в некоторый код JavaScript. Как бы я получил только время от этого?
Например, в формате ЧЧ / ММ / СС.
javascript
date
time
date-format
time-format
roflwaffle
источник
источник
Ответы:
Для получения дополнительной информации об объекте Date, пожалуйста, обратитесь к MDN или спецификации ECMAScript 5 .
источник
источник
var min = a.getMinutes() < 10 ? '0' + a.getMinutes() : a.getMinutes(); var sec = a.getSeconds() < 10 ? '0' + a.getSeconds() : a.getSeconds();
getMonth()
возвращает номер месяца от 0 до 11, поэтомуa.getMonth() - 1
неверно.JavaScript работает в миллисекундах, поэтому сначала вам нужно преобразовать метку времени UNIX из секунд в миллисекунды.
источник
Я неравнодушен к
Date.format()
библиотеке Джейкоба Райта , которая реализует форматирование дат JavaScript в стиле функции PHPdate()
.источник
format is not a function
. Но это, видимо, работает: stackoverflow.com/a/34015511/7550772Использование:
и на время:
см. Date.prototype.toLocaleDateString ()
источник
toLocaleString
включает в себя как дату, так и время.Вот самое короткое однострочное решение для форматирования секунд
hh:mm:ss
:Примечание: это решение не требует сторонних библиотек и поддерживается во всех современных браузерах и движках JavaScript.
источник
toTimeString
плохо работали с часовыми поясами. К сожалению, ваше редактирование было отклонено до того, как я его увидел. Тем не менее, я бы предложил использоватьtoISOString
вместо этого, так какtoGMTString
является устаревшим и может возвращать разные результаты на разных платформах.Я бы подумал об использовании библиотеки, например momentjs.com , которая делает это действительно простым:
На основе отметки времени Unix:
На основе строки даты MySQL:
источник
console.log
примерах я был смущен форматом из-за/
, но он мне очень помог.Временная метка UNIX - это количество секунд с 00:00:00 UTC 1 января 1970 года (согласно Википедии ).
Аргумент объекта Date в Javascript - это количество миллисекунд с 00:00:00 UTC 1 января 1970 года (согласно документации Javascript W3Schools ).
Смотрите код ниже, например:
дает:
источник
самое короткое однострочное решение для форматирования секунд в формате чч: мм: сс: вариант:
источник
Используя Moment.js , вы можете получить время и дату следующим образом:
И вы можете получить только время, используя это:
источник
Проблема с вышеупомянутыми решениями состоит в том, что если час, минута или секунда имеют только одну цифру (то есть 0-9), время будет неправильным, например, оно может быть 2: 3: 9, но скорее должно быть 02: 3:09.
В соответствии с этой страницей кажется лучшим решением использовать метод Date toLocaleTimeString.
источник
date.toLocaleTimeString()
toTimeString
методом. Проверьте здесь: stackoverflow.com/a/35890537/1249581 .Другой способ - с даты ISO 8601 .
источник
В данный момент вы должны использовать метку времени Unix:
источник
Основываясь на ответе @ shomrat, ниже приведен фрагмент, который автоматически записывает дату и время следующим образом (немного похоже на дату ответа StackOverflow:)
answered Nov 6 '16 at 11:51
:или
или (если отличается, но в том же году, чем сегодня)
или (если другой год, чем сегодня)
источник
Современное решение, которое не требует библиотеки 40 КБ:
Intl.DateTimeFormat - это некультурный империалистический способ форматирования даты / времени.
источник
Моя метка времени извлекается из бэкэнда PHP. Я попробовал все методы выше, и это не сработало. Затем я наткнулся на учебник, который работал:
методы выше приведут к этим результатам
Существует множество методов, которые отлично работают с метками времени. Не могу перечислить их всех
источник
источник
Обратите внимание на нулевую проблему с некоторыми из ответов. Например, метка времени
1439329773
будет ошибочно преобразована в12/08/2015 0:49
.Я бы предложил использовать следующее для решения этой проблемы:
Теперь результаты в:
источник
источник
источник
Смотрите Конвертер Даты / Эпохи .
Вам нужно
ParseInt
, иначе это не сработает:источник
Вы можете использовать следующую функцию для преобразования вашей временной метки в
HH:MM:SS
формат:Не передавая разделитель, он использует
:
разделитель (по умолчанию):Если вы хотите использовать
/
в качестве разделителя, просто передайте его как второй параметр:демонстрация
Смотрите также эту скрипку .
источник
источник
Если вы хотите преобразовать продолжительность времени Unix в реальные часы, минуты и секунды, вы можете использовать следующий код:
источник
источник
Приведенный ниже код также содержит 3-значные миллисекунды, идеально подходящие для префиксов журнала консоли:
источник
moment.js
https://momentjs.com/
источник
day.js
github.com/iamkun/dayjsОтвет, данный @Aron, работает, но он не работал для меня, так как я пытался преобразовать метку времени, начиная с 1980 года. Поэтому я сделал несколько изменений следующим образом
Поэтому, если у вас есть временная метка, начинающаяся с другого десятилетия или около того, просто используйте ее. Это избавило меня от головной боли.
источник