Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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,我正在努力将我的日期和时间从2013年4月8日周一00:00:00 GMT-0400(东部夏令时)格式化为2013年4月8日周一01:01:01。虽然我尝试过的每一件事都不走运。有人能给我点光吗。下面是我尝试过的最后一段代码。谢谢 var date = new Date(parseInt(data[0].published.substr(6))); var time = new Date(date.toLocaleDateString()); 只需使用一个简单的正则表达式 var date =

我正在努力将我的日期和时间从2013年4月8日周一00:00:00 GMT-0400(东部夏令时)格式化为2013年4月8日周一01:01:01。虽然我尝试过的每一件事都不走运。有人能给我点光吗。下面是我尝试过的最后一段代码。谢谢

var date = new Date(parseInt(data[0].published.substr(6)));
var time = new Date(date.toLocaleDateString());

只需使用一个简单的正则表达式

var date = new Date(parseInt(data[0].published.substr(6)));
var time = new Date(date.toLocaleDateString());
var str = 'MON APR 08 2013 00:00:00 GMT-0400 (EASTERN DAYLIGHT TIME)';
console.log(str.replace(/(.*\d{2}\:\d{2}\:\d{2}).*$/, '$1'));
// outputs MON APR 08 2013 00:00:00

如果可以,最好的做法可能是在服务器端格式化日期,或者至少显示一个更通用的日期(如UNIX时间戳),而不是格式化的字符串

var date = new Date(parseInt(data[0].published.substr(6)));
var time = new Date(date.toLocaleDateString());
但是,如果不能更改服务器端输出,则可以使用javascript日期对象。我知道您已经尝试过了,但是没有正确使用日期对象的构造函数:

var date = new Date(parseInt(data[0].published.substr(6)));
var time = new Date(date.toLocaleDateString());
var dateString = 'MON APR 08 2013 00:00:00 GMT-0400 (EASTERN DAYLIGHT TIME)';
var dte = new Date(dateString);
document.write(dte.toDateString()); // output: Mon Apr 08 2013
试试看:

var date = new Date(parseInt(data[0].published.substr(6)));
var time = new Date(date.toLocaleDateString());
如果需要重构时间,可以使用
toLocaleDateString
()传递区域设置或格式字符串,也可以使用
getHours()
(etc)函数手动构建区域设置或格式字符串

var date = new Date(parseInt(data[0].published.substr(6)));
var time = new Date(date.toLocaleDateString());
文档

var date = new Date(parseInt(data[0].published.substr(6)));
var time = new Date(date.toLocaleDateString());
  • 日期
    MDN上的对象-

是否需要将其转换为日期,是否可以改为将其解析为字符串?它可以是字符串,看起来像MON APR 08 2013 01:01:01。这有意义吗?这个问题到底与JSON有什么关系?01:01:01来自哪里?var time=date.localeFormat(“dddd,MMMM d yyyy,h:mm:ss”);这最终在我身上起作用,我从一个json文件中重新格式化,文本变得很奇怪。谢谢。
localeFormat
是一种非标准方法。Mozilla U/A也实现了一种相关但不同的非标准方法。然而,有一种称为
toLocaleDateString
的标准化方法,它有一个复杂的格式参数,可以以标准方式完成工作。另外,还有一个,它是一个轻量级库,提供更复杂(和标准化的!)日期格式选项。很高兴我能提供帮助--我已经编辑了我的答案,其中包含了一些关于
toLocaleDateString
:)