Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中更改日期时间格式?_Javascript_Jquery - Fatal编程技术网

如何在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);