当我从nodeschool.io处理节点项目时,我需要做的事情之一是构造一个日期格式,并确保根据它的显示方式正确地格式化它。这是格式:“YYYY DD hh:mm”,我使用date对象获取我需要的日期信息,然后将其收集到一个数组中,创建一个轻松的for循环,将其转换为string,使某些格式化实践变得更容易。我一直试图做的一个特定的格式化实践是将"0“添加到月和日,因为该格式在月和日中需要两位数,但是,这两个数字只有1位数,因为这是当前日期。由于一些奇怪的原因,0将不会被追加。
var date = new Date();
// Date Format: "YYYY-MM-DD hh:mm"
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDay();
var hour = date.getHours();
var minute = date.getMinutes();
var dates = [year, month, day, hour, minute];
// Conversion and Formatting
for (var i = 0; i < dates.length; i++) {
dates[i] = dates[i].toString();
if (dates[i].length < 2) {
dates[i] = "0" + dates[i];
}
}
var format = year + "-" + month + "-" + day + " " + hour + ":" +
minute;
console.log(format);发布于 2019-01-15 01:28:53
您需要在format循环中包含对for的赋值,并将适当的分隔符附加到每个元素。以下是修改后的代码:
var date = new Date();
// Date Format: "YYYY-MM-DD hh:mm"
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDay();
var hour = date.getHours();
var minute = date.getMinutes();
var dates = [year, month, day, hour, minute];
let format = "";
const separators = ["", "-", "-", " ", ":"];
// Conversion and Formatting
for (var i = 0; i < dates.length; i++) {
dates[i] = dates[i].toString();
if (dates[i].length < 2) {
dates[i] = "0" + dates[i];
}
format += separators[i] + dates[i];
}
console.log(format);发布于 2019-01-15 01:20:53
也许你可以试试这样的方法
function td(n) {
return ('' + n).length == 2 ? n : '0' + n;
}
let date = new Date();
let format = date.getFullYear() + '-' +
td(date.getMonth() + 1) + '-' +
td(date.getDate()) + ' ' +
td(date.getHours()) + ':' +
td(date.getMinutes());
console.log(format);发布于 2019-01-15 00:48:24
您的数组包含副本、year、month等变量的。更改数组中的值对原始变量没有任何影响。
您可以做的是使用第二个数组来保存组件值之间的分隔符,并在迭代期间构建结果字符串:
var seps = ["-", "-", " ", ":"];
format = ""; // initialize the result formatted date
for (var i = 0; i < dates.length; ++i) {
if (i > 0)
format += seps[i - 1]; // add separator
var d = dates[i].toString();
if (d.length < 2)
d = "0" + d;
format += d;
}https://stackoverflow.com/questions/54191257
复制相似问题