当我们在date
对象上调用getMonth()
和getDate()
时,我们将获得single digit number
。 例如:如何获得2位数字格式的JavaScript月和日期?
对于january
,它显示1
,但我需要显示为01
。怎么做?
当我们在date
对象上调用getMonth()
和getDate()
时,我们将获得single digit number
。 例如:如何获得2位数字格式的JavaScript月和日期?
对于january
,它显示1
,但我需要显示为01
。怎么做?
举例月:
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
}
请注意,getMonth返回0到11之间的数字,而不是1和12. – 2011-05-18 06:11:31
这会返回不一致的结果。对于十一月和十二月,它返回一个字符串,在其他几个月它返回一个数字。 – 2011-05-18 08:59:09
我更新了实现Salman的代码警告getMonth是基于零而不是1.然后添加引号以确保总是返回一个字符串。 – 2015-05-18 18:53:12
function monthFormated() {
var date = new Date(),
month = date.getMonth();
return month+1 < 10 ? ("0" + month) : month;
}
这是我的解决方案:
function leadingZero(value) {
if (value < 10) {
return "0" + value.toString();
}
return value.toString();
}
var targetDate = new Date();
targetDate.setDate(targetDate.getDate());
var dd = targetDate.getDate();
var mm = targetDate.getMonth() + 1;
var yyyy = targetDate.getFullYear();
var dateCurrent = leadingZero(mm) + "/" + leadingZero(dd) + "/" + yyyy;
以下是习惯于使用三元运算符转换DB2的日期格式 即YYYY-MM-DD
var currentDate = new Date();
var twoDigitMonth=((currentDate.getMonth()+1)>=10)? (currentDate.getMonth()+1) : '0' + (currentDate.getMonth()+1);
var twoDigitDate=((currentDate.getDate())>=10)? (currentDate.getDate()) : '0' + (currentDate.getDate());
var createdDateTo = currentDate.getFullYear() + "-" + twoDigitMonth + "-" + twoDigitDate;
alert(createdDateTo);
不是一个答案,但这里是我得到的日期格式我需要一个变量
function setDateZero(date){
return date < 10 ? '0' + date : date;
}
var curr_date = ev.date.getDate();
var curr_month = ev.date.getMonth() + 1;
var curr_year = ev.date.getFullYear();
var thisDate = curr_year+"-"+setDateZero(curr_month)+"-"+setDateZero(curr_date);
希望这有助于!
function monthFormated(date) {
//If date is not passed, get current date
if(!date)
date = new Date();
month = date.getMonth();
// if month 2 digits (9+1 = 10) don't add 0 in front
return month < 9 ? "0" + (month+1) : month+1;
}
如果你想要像一个格式为 “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', ' ');
我希望这有助于
这是我遇到的最简单的解决方案。这里唯一的问题是时区偏移。 – Praym 2016-08-26 15:22:26
时区偏移量可以采取类似于: var date = new Date(new Date()。getTime() - new Date()。getTimezoneOffset()* 60 * 1000).toISOString()。substr 0,19).replace('T',''); – Praym 2016-08-26 15:47:54
Praym,你的代码适用于我,但复制和粘贴必须有一些隐藏的字符或东西,所以我只是手工输入它。 – spacebread 2017-06-09 20:50:33
我的解决办法:
function addLeadingChars(string, nrOfChars, leadingChar) {
string = string + '';
return Array(Math.max(0, (nrOfChars || 2) - string.length + 1)).join(leadingChar || '0') + string;
}
用法:
var
date = new Date(),
month = addLeadingChars(date.getMonth() + 1),
day = addLeadingChars(date.getDate());
的jsfiddle:http://jsfiddle.net/8xy4Q/1/
要做到这一点,最好的方法是创建自己的简单格式化(如下):
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);
}
var net = require('net')
function zeroFill(i) {
return (i < 10 ? '0' : '') + i
}
function now() {
var d = new Date()
return d.getFullYear() + '-'
+ zeroFill(d.getMonth() + 1) + '-'
+ zeroFill(d.getDate()) + ' '
+ zeroFill(d.getHours()) + ':'
+ zeroFill(d.getMinutes())
}
var server = net.createServer(function (socket) {
socket.end(now() + '\n')
})
server.listen(Number(process.argv[2]))
function GetDateAndTime(dt) {
var arr = new Array(dt.getDate(), dt.getMonth(), dt.getFullYear(),dt.getHours(),dt.getMinutes(),dt.getSeconds());
for(var i=0;i<arr.length;i++) {
if(arr[i].toString().length == 1) arr[i] = "0" + arr[i];
}
return arr[0] + "." + arr[1] + "." + arr[2] + " " + arr[3] + ":" + arr[4] + ":" + arr[5];
}
的答案在这里是有帮助的,但是我需要更多的:不仅一个月,日期,月份,小时&秒,为默认名称。有趣的是,虽然前面所有的都需要“0”,但是“+ 1”只需要一个月,而不是其他的。
作为例子:从MDN
("0" + (d.getMonth() + 1)).slice(-2) // Note: +1 is needed
("0" + (d.getHours())).slice(-2) // Note: +1 is not needed
提示:
function date_locale(thisDate, locale) {
if (locale == undefined)
locale = 'fr-FR';
// set your default country above (yes, I'm french !)
// then the default format is "dd/mm/YYY"
if (thisDate == undefined) {
var d = new Date();
} else {
var d = new Date(thisDate);
}
return d.toLocaleDateString(locale);
}
var thisDate = date_locale();
var dayN = thisDate.slice(0, 2);
var monthN = thisDate.slice(3, 5);
console.log(dayN);
console.log(monthN);
而另一个版本在这里https://jsfiddle.net/ivos/zcLxo8oy/1/,希望对大家有用。
var dt = new Date(2016,5,1); // just for the test
var separator = '.';
var strDate = (dt.getFullYear() + separator + (dt.getMonth() + 1) + separator + dt.getDate());
// end of setup
strDate = strDate.replace(/(\b\d{1}\b)/g, "0$1")
使用Moment.js可以这样做:
moment(new Date(2017, 1, 1)).format('DD') // day
moment(new Date(2017, 1, 1)).format('MM') // month
又一个例子,几乎一行。
var date = new Date();
console.log((date.getMonth() < 9 ? '0': '') + (date.getMonth()+1));
http://stackoverflow.com/questions/2998784/how-to-output-integers-with-leading-zeros-in-javascript – carlosfigueira 2011-05-18 06:10:31