Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Отсутствие нулей при выводе времени + неправильный месяц (https://javascript.ru/forum/css-html-firefox-mizilla/80546-otsutstvie-nulejj-pri-vyvode-vremeni-nepravilnyjj-mesyac.html)

rightuser 18.06.2020 20:04

Отсутствие нулей при выводе времени + неправильный месяц
 
Приветствую форумчан и сразу же предупреждаю, что не имею большого опыта работы с JS и вопрос может показаться нубским, но прошу строго не судить.
Суть в следующем:
Использую следующие скрипты для вывода времени:
<script>
Data = new Date();
Year = Data.getFullYear();
Month = (Data.getMonth()+ 1);
Day = Data.getDate();
Hour = Data.getHours();
Minutes = Data.getMinutes();
Seconds = Data.getSeconds();
</script>
<script>
document.write(Day + "." );
document.write(Month + ".");
document.write(Year + ", ");
document.write(Hour + ":" );
document.write(Minutes);
</script>

Проблему с некорректным выводом месяца (показывает на месяц назад) я решил подобным "костылём": просто добавил "+1" к имеющемуся значению. Не знаю, насколько это корректно, поэтому буду рад узнать, почему происходит подобный баг и какие есть более целесообразные методы его устранения.

Но больше всего меня интересует следующее: когда числовые значения являются однозначными, то они отображаются без нуля в начале: 19:02 показывается как 19:2, 08:41 - как 8:41, 18.06.2020 - как 18.6.2020. Как можно исправить это? Буду благодарен за решение.

UPD1: приношу извинения за, возможно, некорректный раздел. Сам пользуюсь Firefox Nightly, последний на сегодня билд.
UPD2: всё решено, спасибо рони.

рони 18.06.2020 20:19

rightuser,

Intl.DateTimeFormat

rightuser 18.06.2020 22:11

Вывод даты с применением Intl.DateTimeFormat
 
Цитата:

Сообщение от рони (Сообщение 526092)

Посмотрел, спасибо. На получение даты применил следующее:

<script>
		Data = new Date();
		Year = Data.getFullYear();
		Month = (Data.getMonth()+ 1);
		Day = Data.getDate();
		Hour = Data.getHours();
		Minutes = Data.getMinutes();
		Seconds = Data.getSeconds();
		
		var formatter = new Intl.DateTimeFormat("ru", {
		year: "numeric",
		month: "2-digit",
		day: "2-digit",
		hour: "2-digit",
		minute: "2-digit"
});
		</script>


А как можно вывести день, месяц, год, часы и минуты используя document.write, чтобы это произошло с учётом заданных условий? И корректны ли они вообще? Спасибо.

рони 18.06.2020 22:24

форматирование даты
 
rightuser,
<!doctype html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<script>
let Data = new Date();
let formatter = new Intl.DateTimeFormat("ru", {
		year: "numeric",
		month: "2-digit",
		day: "2-digit",
		hour: "2-digit",
		minute: "2-digit"
      });
document.write(formatter.format(Data))
</script>

</body>
</html>


Часовой пояс GMT +3, время: 18:38.