ToDateString: примеры (JAVASCRIPT)
toDateString: stringОписание метода toDateString()
Метод toDateString() возвращает строковое представление части даты (день недели, месяц, день и год) объекта Date в удобочитаемом формате на английском языке. Метод не принимает никаких аргументов.
Его основное применение — вывод даты в формате, понятном человеку, без информации о времени. Формат вывода зависит от реализации и локали движка JavaScript, но обычно соответствует шаблону вида Day Month Date Year, например, Tue Sep 13 2022.
Возвращаемое значение — строка (string). Так как формат зависит от движка, для гарантированного результата рекомендуется использовать библиотеки форматирования дат, такие как Intl.DateTimeFormat.
Простые примеры использования
Создание объекта Date и получение даты в строковом виде.
const now = new Date();
console.log(now.toDateString());// Результат (зависит от текущей даты и локали): // Tue Jan 16 2024
Использование с конкретной датой.
const specificDate = new Date('2023-12-25');
console.log(specificDate.toDateString());// Результат: // Mon Dec 25 2023
Альтернативные методы JavaScript
toISOString(): возвращает дату в формате ISO 8601 (например, 2024-01-16T10:30:00.000Z). Применяется для сериализации и передачи дат между системами.
toLocaleDateString(): возвращает строку с частью даты, отформатированную согласно переданным опциям локали. Позволяет контролировать язык и формат вывода, что делает его более предпочтительным для интернационализированных приложений.
toString(): возвращает полное строковое представление объекта Date, включая дату, время и часовой пояс. Для получения только даты менее удобен.
Типичные ошибки
Вызов метода для переменной, которая не является объектом Date, приводит к ошибке TypeError.
const notADate = '2024-01-16';
console.log(notADate.toDateString()); // Ошибка// TypeError: notADate.toDateString is not a function
Ожидание локализованного вывода. Метод всегда возвращает строку на английском, независимо от настроек браузера или системы.
// В русскоязычной среде
console.log(new Date().toDateString());// Все равно вернется: Tue Jan 16 2024 // А не: Вт Янв 16 2024
Изменения в спецификации
Спецификация метода toDateString() стабильна и не претерпевала значимых изменений в последних версиях ECMAScript. Формат вывода остается зависимым от реализации, что закреплено в стандарте. Основные изменения в работе с датами в современных версиях JavaScript касаются введения Temporal (на стадии proposal) и улучшения API Intl.DateTimeFormat.
Расширенные примеры
Сравнение вывода с другими методами.
const date = new Date('2024-06-15T14:30:00Z');
console.log('toDateString():', date.toDateString());
console.log('toString():', date.toString());
console.log('toISOString():', date.toISOString());
console.log('toLocaleDateString("ru-RU"):', date.toLocaleDateString('ru-RU'));// Пример вывода (для GMT+3):
// toDateString(): Sat Jun 15 2024
// toString(): Sat Jun 15 2024 17:30:00 GMT+0300 (Москва, стандартное время)
// toISOString(): 2024-06-15T14:30:00.000Z
// toLocaleDateString("ru-RU"): 15.06.2024Использование для логирования или отображения даты в UI без времени.
function formatTaskDate(dueDate) {
return `Задача выполняется до: ${dueDate.toDateString()}`;
}
console.log(formatTaskDate(new Date(2024, 11, 31)));// Задача выполняется до: Tue Dec 31 2024
Попытка форматирования даты до 100 г. н.э. может давать нестандартный результат в некоторых браузерах.
console.log(new Date('0099-01-01').toDateString());// Результат может варьироваться: // Sat Jan 01 0099 (Chrome) // или Sat Jan 01 99 (некоторые старые среды)
Аналоги в других языках программирования
PHP: Функция date() с форматом 'D M j Y'. Формат полностью настраивается.
echo date('D M j Y'); // Tue Jan 16 2024Python: Метод strftime() модуля datetime с форматом '%a %b %d %Y'.
from datetime import datetime
print(datetime.now().strftime('%a %b %d %Y')) # Tue Jan 16 2024MySQL: Функция DATE_FORMAT() с форматом '%a %b %d %Y'.
SELECT DATE_FORMAT(NOW(), '%a %b %d %Y'); -- Tue Jan 16 2024В отличие от JavaScript, перечисленные аналоги обычно предоставляют предсказуемый и локализованный вывод при указании локали.