我想像这样格式化日期:
2013 年 5 月 2 日
但目前,我的格式如下所示:
2013 年 5 月 2 日
如何用零填充这种类型的日期,使日期中的 天 类似于 02
而不仅仅是 2
?
这是我使用的代码:
var m_names = new Array("January", "February", "March",
"April", "May", "June", "July", "August", "September",
"October", "November", "December");
var d = new Date();
var curr_date = d.getDate();
var curr_month = d.getMonth();
var curr_year = d.getFullYear();
alert( m_names[curr_month] + " " +curr_date + " " + curr_year);
最佳答案
您可以像这样实现此逻辑:
var d = new Date();
var curr_date = ("0" + d.getDate()).slice(-2);
var curr_month = d.getMonth();
var curr_year = d.getFullYear();
console.log( m_names[curr_month] + " " +curr_date + " " + curr_year);
更新 - (2017 年 10 月 1 日)
EcmaScript 2017 或 ES8 引入了两个新的 String 原型(prototype)方法:
padStart()
和 padEnd()
.我们可以在字符串之前或之后添加一些额外的空格或破折号(或任何其他字符)。我们可以在这里使用它:
var curr_date = d.getDate().toString().padStart(2,0);
( 如果我们不需要将 d.getDate() 转换为字符串,此语法可能会更短,因为 padStart 仅适用在字符串上)
演示:
var m_names = new Array("January", "February", "March",
"April", "May", "June", "July", "August", "September",
"October", "November", "December");
var d = new Date('10/1/2017');
var curr_date = d.getDate().toString().padStart(2, 0);
var curr_month = d.getMonth();
var curr_year = d.getFullYear();
var formatted_date = m_names[curr_month] + " " + curr_date + " " + curr_year;
console.log(formatted_date);
关于javascript - 使用 JavaScript 对日期进行零填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16344249/