如何在javascript中更改日期时间格式?
我的代码如下:如何在javascript中更改日期时间格式?,javascript,jquery,Javascript,Jquery,我的代码如下: var createdDate = '2013-01-21 01:23:44'; createdDate = new Date(createdDate); date = createdDate.toLocaleDateString(); time = createdDate.toLocaleTimeString().replace(/(.*)\D\d+/, '$1'); console.log(date+' '+time); 结果:2013年1月21日凌晨1:23 我要结果:2
var createdDate = '2013-01-21 01:23:44';
createdDate = new Date(createdDate);
date = createdDate.toLocaleDateString();
time = createdDate.toLocaleTimeString().replace(/(.*)\D\d+/, '$1');
console.log(date+' '+time);
结果:2013年1月21日凌晨1:23
我要结果:2013-01-21凌晨1:23
有什么办法可以解决我的问题吗?当然有一些普通的办法,但是在JS中使用日期/时间通常是一件痛苦的事情。如果您打算认真处理日期/时间,我强烈建议您使用的format方法,因为它的健壮性和灵活性,它应该能够做您想要的事情 文档中的示例:
moment().format(); // "2014-09-08T08:02:17-05:00" (ISO 8601)
moment().format("dddd, MMMM Do YYYY, h:mm:ss a"); // "Sunday, February 14th 2010, 3:25:50 pm"
moment().format("ddd, hA"); // "Sun, 3PM"
moment('gibberish').format('YYYY MM DD'); // "Invalid date"
您可以扩展
Number
类以允许零填充(以显示前面带零的单位数字天数和月份):
如果您正在寻找更优雅或不太详细的解决方案,则需要使用外部库。这是否有帮助?我建议为此使用一个库,例如,JS中的日期格式是一个巨大的难题。您必须编写太多的代码才能执行此操作。您也可以使用,例如
createdDate.format.format('Y-m-d g:i a')
将输出“2016-07-13 5:14 PM”
谢谢,我用了一会儿,不知道它能做到这一点。一个小的添加:您可以直接将时间字符串加载到调用中,如moment(time\u string).format(“DD.MM.yyy HH:MM”)
Number.prototype.pad = function(size) {
var s = String(this);
while (s.length < (size || 2)) {s = "0" + s;}
return s;
}
var createdDate = new Date('2013-01-21 01:23:44');
var date = createdDate.toLocaleDateString();
var day = createdDate.getDate();
var month = createdDate.getMonth() + 1; //months are zero based
var year = createdDate.getFullYear();
var time = createdDate.toLocaleTimeString().replace(/(.*)\D\d+/, '$1');
console.log(year + '-' + month.pad() + '-' + day.pad() + ' ' + time);