Преобразование Unix-метки времени в формат времени в JavaScript
Я сохраняю время в базе данных MySQL в формате Unix timestamp, и это значение отправляется в код JavaScript. Как я могу извлечь только время из этого значения?
Например, мне нужно получить время в формате HH/MM/SS
.
5 ответ(ов)
В вашем коде представлена функция timeConverter
, которая преобразует UNIX timestamp в читаемый формат даты и времени. Давайте разберем ее по частям:
Создание объекта даты: Вы создаете новый объект
Date
, используя переданныйUNIX_timestamp
, умноженный на 1000, так как в JavaScript время в миллисекундах.var a = new Date(UNIX_timestamp * 1000);
Массив месяцев: Здесь создается массив
months
, который содержит названия месяцев на сокращенном английском языке.var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
Извлечение компонентов даты: Вы получаете год, месяц, день, часы, минуты и секунды с помощью методов объекта Date:
var year = a.getFullYear(); var month = months[a.getMonth()]; var date = a.getDate(); var hour = a.getHours(); var min = a.getMinutes(); var sec = a.getSeconds();
Форматирование строки даты: Затем вы формируете строку в формате "день месяц год часы:минуты:секунды" и возвращаете ее.
var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec ; return time;
Пример использования: В конце вы вызываете функцию с параметром
0
, что соответствует началу эпохи UNIX (1 января 1970 года):console.log(timeConverter(0));
Таким образом, если вам нужно отобразить время в читаемом формате, функция timeConverter
отлично с этим справляется, преобразуя UNIX timestamp в строку с полным описанием даты и времени.
Если возникнут дополнительные вопросы или нужны уточнения, не стесняйтесь спрашивать!
JavaScript работает в миллисекундах, поэтому сначала вам нужно будет преобразовать UNIX-метку времени из секунд в миллисекунды.
var date = new Date(UNIX_Timestamp * 1000);
// Здесь вы можете манипулировать объектом Date в JavaScript...
Чтобы отформатировать секунды в формате hh:mm:ss в виде одной строки, вы можете воспользоваться следующим решением:
console.log(new Date(1549312452 * 1000).toTimeString().split(' ')[0]);
Этот код создаёт объект Date
, затем получает строку с временем и разбивает её, чтобы извлечь только время в формате hh:mm:ss.
Я рекомендую использовать библиотеку, такую как moment.js, которая делает работу с датами и временем действительно простой.
Для работы с Unix-меткой времени вы можете использовать следующий код:
var timestamp = moment.unix(1293683278);
console.log(timestamp.format("HH/mm/ss"));
Если вы хотите работать со строкой даты из MySQL, это можно сделать так:
var now = moment("2010-10-10 12:03:15");
console.log(now.format("HH/mm/ss"));
Эти примеры показывают, как легко извлекать и форматировать время с помощью moment.js.
Вы можете использовать библиотеку Moment.js для работы с временными метками в формате Unix. Для преобразования временной метки в дата-время строку используйте следующий код:
const dateTimeString = moment.unix(1466760005).format("DD-MM-YYYY HH:mm:ss");
В этом примере moment.unix(1466760005)
создает объект Moment из Unix-временной метки, а метод .format("DD-MM-YYYY HH:mm:ss")
форматирует его в строку в формате "дд-мм-гггг чч:мм:сс".
Где найти документацию по форматированию даты в JavaScript?
Получить название месяца из даты
Форматирование даты в JavaScript в виде yyyy-mm-dd
Как вычесть дни из обычной даты?
Как преобразовать дату в UTC?