#javascript #jquery
#javascript #jquery
Вопрос:
Я хочу получить этот формат :
2019-03-24 15:05:20
Вот что я пробовал:
var today = new Date();
var date = today.getFullYear() '-' (today.getMonth() 1) '-' today.getDate();
var time = today.getHours() ":" today.getMinutes() ":" today.getSeconds();
var dateTime = date ' ' time;
Я получил:
2019-3-24 15:0:20
В нем отсутствуют начальные нули.
Ответ №1:
Это потому, что числа, меньшие 10, должны быть дополнены нулем, но это не так.
Вы можете использовать padStart
функцию для достижения ожидаемого результата — добавить начальный символ 0, если длина числа меньше 2. Я немного изменил ваш код, но все, что вам нужно, это использовать .toString().padStart(2, '0')
для числа.
var today = new Date();
var date = [
today.getFullYear(),
today.getMonth() 1,
today.getDate(),
].map((value) => value.toString().padStart(2, '0')).join('-');
var time = [
today.getHours(),
today.getMinutes(),
today.getSeconds(),
].map((value) => value.toString().padStart(2, '0')).join(':');;
var dateTime = date ' ' time;
console.log(dateTime);
Ответ №2:
Это довольно близко к ISO 8601, так что давайте начнем с этого.
const d = new Date();
d
.toISOString() // Convert date to a string in the format of 2019-03-25T00:07:22.0253Z
.substr(0, 19) // Strip off the milliseconds and Zulu timezone indication
.replace('T', ' '); // Replace the T for "time" with a space
В результате вы получите дату в формате 2019-03-25 00:07:22
.
Комментарии:
1. Почему это было отклонено? Это совершенно разумное решение представленной проблемы, и оно хорошо документировано. В наши дни я действительно не понимаю Stack Overflow.
Ответ №3:
Вы можете использовать троичную операцию для простого использования. Это должно дать вам начальный ноль.
var today = new Date();
var date = today.getFullYear() '-' (today.getMonth() 1) '-' today.getDate();
var time = today.getHours() ":" (today.getMinutes() < 10 ? '0' : '') today.getMinutes() ":" today.getSeconds();
var dateTime = date ' ' time;
console.log(dateTime, 'result');
Ответ №4:
Вы можете использовать:
var d = new Date();
d = new Date(d.getTime() - 3000000);
var date_format_str = d.getFullYear().toString() "-" ((d.getMonth() 1).toString().length==2?(d.getMonth() 1).toString():"0" (d.getMonth() 1).toString()) "-" (d.getDate().toString().length==2?d.getDate().toString():"0" d.getDate().toString()) " " (d.getHours().toString().length==2?d.getHours().toString():"0" d.getHours().toString()) ":" ((parseInt(d.getMinutes()/5)*5).toString().length==2?(parseInt(d.getMinutes()/5)*5).toString():"0" (parseInt(d.getMinutes()/5)*5).toString()) ":00";
console.log(date_format_str);