如何获得2位数字格式的JavaScript月和date?

当我们在date对象上调用getMonth()getDate()时,我们将获得single digit number 。 例如 :

january ,它显示1 ,但我需要显示为01 。 怎么做?

 ("0" + this.getDate()).slice(-2) 

对于date和类似的:

 ("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 

或者是常用的MySQLdate时间格式“YYYY-MM-DD HH:mm:ss”:

 var date2 = new Date().toISOString().substr(0, 19).replace('T', ' '); 

我希望这有帮助

月的例子:

 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 } 

最好的方法是创build自己的简单格式化程序(如下所示):

getDate()返回月份的date(从1-31)
getMonth()返回月份(从0-11)<从0开始,0 = 1月,11 = 12月
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); } 

以下是使用三元运算符转换db2date格式,即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 monthFormated() { var date = new Date(), month = date.getMonth(); return month+1 < 10 ? ("0" + month) : month; } 
 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; } 

使用Moment.js可以这样做:

 moment(new Date(2017, 1, 1)).format('DD') // day moment(new Date(2017, 1, 1)).format('MM') // month 

不是一个答案,但这里是我如何得到我需要在variables中的date格式

 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); 

希望这可以帮助!

这是我的解决scheme:

 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; 
 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]; } 

来自MDN的提示:

 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); 

http://jsfiddle.net/v4qcf5x6/

而另一个版本在这里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") 

这里的答案是有帮助的,但是我需要更多的不仅仅是月份,date,月份,小时和秒,默认名称。

有趣的是,虽然以上都需要“0”的前提,但是“+ 1”只需要一个月,而不是其他的。

举个例子:

 ("0" + (d.getMonth() + 1)).slice(-2) // Note: +1 is needed ("0" + (d.getHours())).slice(-2) // Note: +1 is not needed 

我的解决scheme

 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/

 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])) 

再举一个例子,几乎是一个class轮。

 var date = new Date(); console.log( (date.getMonth() < 9 ? '0': '') + (date.getMonth()+1) );