30

Как получить текущую дату в JavaScript?

27

Как получить текущую дату в JavaScript?

У меня возникла проблема с получением текущей даты в JavaScript. Я попытался использовать Date(), но результаты не совсем соответствуют тому, что я ожидаю. Также я хотел бы узнать, как правильно форматировать дату для отображения. Буду благодарен за детальные объяснения и примеры кода.

5 ответ(ов)

34

Для получения текущей даты с помощью JavaScript можно использовать конструкцию new Date(), которая создаёт новый объект Date, содержащий текущую дату и время.

Вот пример кода, который выводит сегодняшнюю дату в формате mm/dd/yyyy:

var today = new Date();
var dd = String(today.getDate()).padStart(2, '0'); // Получаем день месяца
var mm = String(today.getMonth() + 1).padStart(2, '0'); // Получаем месяц (январь - 0)
var yyyy = today.getFullYear(); // Получаем полный год

today = mm + '/' + dd + '/' + yyyy; // Форматируем дату
document.write(today); // Выводим дату на экран

В результате выполнения вышеуказанного кода вы получите сегодняшнюю дату в формате mm/dd/yyyy.

Если вы хотите изменить формат даты, просто замените строку today = mm + '/' + dd + '/' + yyyy; на нужный вам формат. Например, для формата dd-mm-yyyy можно использовать:

today = dd + '-' + mm + '-' + yyyy;

Надеюсь, это поможет!

5

В приведённом вами коде создаётся строка с текущей датой в формате ISO, затем обрезается до первых 10 символов (т.е. до даты в формате YYYY-MM-DD) и заменяются знаки "-" на "/". Это делается для того, чтобы избежать проблем с интерпретацией даты в некоторых браузерах, таких как Firefox и Safari, которые не распознают формат даты с дефисами.

Если вам нужно повторно использовать переменную utc, например, для создания нового объекта Date, рекомендуется использовать метод replace. Вот пример:

var utc = new Date().toJSON().slice(0, 10).replace(/-/g, '/');
document.write(utc);

// Теперь вы можете создать новый объект Date из utc
var newDate = new Date(utc);

Это обеспечит корректное создание объекта Date и избежит возможных ошибок, связанных с форматом даты.

2

Если вам нужна только дата без информации о времени, используйте следующий код:

var today = new Date();
today.setHours(0, 0, 0, 0);

document.write(today);

Этот код создаёт объект Date, представляющий текущее время, и устанавливает часы, минуты, секунды и миллисекунды в ноль, таким образом оставляя только дату. Не забудьте, что при выводе даты в таком виде может отображаться также и информация о времени (с установленными нулями), в зависимости от формата вашего браузера.

1

Попробуйте следующий код:

var currentDate = new Date();
var day = currentDate.getDate();
var month = currentDate.getMonth() + 1; // Не забудьте, что месяцы начинаются с 0
var year = currentDate.getFullYear();
document.write("<b>" + day + "/" + month + "/" + year + "</b>");

В результате вы получите что-то вроде:

15/2/2012

Обратите внимание, что для корректного отображения нужно учитывать, что месяцы в JavaScript начинаются с нуля. Поэтому, чтобы получить правильный номер месяца, необходимо прибавить 1.

0

Если вам нужен более детальный контроль над форматами дат, настоательно рекомендую обратить внимание на библиотеку moment.js. Это великолепная библиотека и весит всего 5 КБ. Вы можете ознакомиться с ней здесь: moment.js.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь