当我们在对象上调用getMonth()
andgetDate()
时date
,我们会得到single digit number
. 例如 :
对于january
,它显示1
,但我需要将其显示为01
. 怎么做?
当我们在对象上调用getMonth()
andgetDate()
时date
,我们会得到single digit number
. 例如 :
对于january
,它显示1
,但我需要将其显示为01
. 怎么做?
("0" + this.getDate()).slice(-2)
对于日期,以及类似的:
("0" + (this.getMonth() + 1)).slice(-2)
本月。
如果你想要像“YYYY-MM-DDTHH:mm:ss”这样的格式,那么这可能会更快:
var date = new Date().toISOString().substr(0, 19);
// toISOString() will give you YYYY-MM-DDTHH:mm:ss.sssZ
或者常用的MySQL日期时间格式“YYYY-MM-DD HH:mm:ss”:
var date2 = new Date().toISOString().substr(0, 19).replace('T', ' ');
我希望这有帮助
为什么不使用padStart
?
padStart(targetLength, padString)
这里targetLength
是2
我们填充它用0
。
// Source: https://stackoverflow.com/a/50769505/2965993
var dt = new Date();
year = dt.getFullYear();
month = (dt.getMonth() + 1).toString().padStart(2, "0");
day = dt.getDate().toString().padStart(2, "0");
console.log(year + '/' + month + '/' + day);
即使月或日小于 10,这也将始终返回 2 位数字。
笔记:
getFullYear()
返回 4 位年份,不需要padStart
.getMonth()
返回从 0 到 11 的月份。
getDate()
返回从 1 到 31 的日期。
07
,因此我们不需要在填充字符串之前加 1。月份示例:
function getMonth(date) {
var month = date.getMonth() + 1;
return month < 10 ? '0' + month : '' + month; // ('' + month) for string result
}
您还可以Date
使用此类功能扩展对象:
Date.prototype.getMonthFormatted = function() {
var month = this.getMonth() + 1;
return month < 10 ? '0' + month : '' + month; // ('' + month) for string result
}
最好的方法是创建自己的简单格式化程序(如下所示):
getDate()
返回月份中的第几天(从 1-31)
getMonth()
返回月份(从 0-11) <从零开始,0=一月,11=十二月
getFullYear()
返回年份(四位数字)<不要使用getYear()
function formatDateToString(date){
// 01, 02, 03, ... 29, 30, 31
var dd = (date.getDate() < 10 ? '0' : '') + date.getDate();
// 01, 02, 03, ... 10, 11, 12
var MM = ((date.getMonth() + 1) < 10 ? '0' : '') + (date.getMonth() + 1);
// 1970, 1971, ... 2015, 2016, ...
var yyyy = date.getFullYear();
// create the format you want
return (dd + "-" + MM + "-" + yyyy);
}