Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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_Regex_Date - Fatal编程技术网

使用javascript(可能是正则表达式)格式化日期

使用javascript(可能是正则表达式)格式化日期,javascript,jquery,regex,date,Javascript,Jquery,Regex,Date,我正在使用JavaScript和JQuery,我得到了如下字符串(不可更改的xml响应): 我如何转换为这样的日期: 08 january 2017, 16:06:52 或者至少: 08 01 2017, 16:06:52 我试图使用.replace()类似于: str = str.replace(/(\d{4})-(\d{2})-(\d{2})T(\d{8}).*/,'$2 $3 $1, $4'); 但它不起作用(要执行此操作,您可以从字符串创建一个Date()对象,然后将Date()对

我正在使用JavaScript和JQuery,我得到了如下字符串(不可更改的xml响应):

我如何转换为这样的日期:

08 january 2017, 16:06:52
或者至少:

08 01 2017, 16:06:52
我试图使用
.replace()
类似于:

str = str.replace(/(\d{4})-(\d{2})-(\d{2})T(\d{8}).*/,'$2 $3 $1, $4');

但它不起作用(

要执行此操作,您可以从字符串创建一个
Date()
对象,然后将
Date()
对象公开的方法中的字符串连接在一起。请尝试以下操作:

var str=“2017-01-08T16:06:52+00:00”;
var日期=新日期(str);
风险值月份=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
var dateString=(“00”+日期.getDate()).slice(-2)+“+月[date.getMonth()]”+“+日期.getFullYear()+”,+(“00”+日期.getHours()).slice(-2)+:“+(“00”+日期.getMinutes()).slice(-2)+:”+(“00”+日期.getSeconds()).slice(-2);

console.log(dateString);
或者,如果您可以使用添加库的选项,则可以选择并传递希望的输出方式,例如:

var str=“2017-01-08T16:06:52+00:00”;
var momentDate=力矩(str);
console.log(momentDate.format('DD-MMMM-YYYY-HH:mm:ss');

您的正则表达式不太正确,
\d{8}
将匹配8个连续数字,但其中也有冒号,您需要类似以下内容:

var str=“2017-01-08T16:06:52+00:00”
str=str.replace(/(\d{4})-(\d{2})-(\d{2})T(.{8})。*/,“$2$3$1,$4”);

console.log(str)
新日期(“2017-01-08T16:06:52+00:00”).toLocaleString()
或者
新日期(“2017-01-08T16:06:52+00:00”).togmString().split(/\W/)
无需密码即可获得花哨的名字list@dandavis虽然要简单得多,但不幸的是,这将使用客户端计算机上指定的日期格式。如果OP要求日期始终以他们指定的格式显示,他们将需要手动编码格式。@RoryMcCrossan:我还演示了如何使用GMT在不使用whit的情况下获取零件名称列表…使用部件数组,自定义格式很简单。我知道,但它仍然使用客户端计算机的格式。上面的输出是
Sun,08,Jan,2017,16,06,52,GMT
的数组,我怀疑这也不是您想要的。@RoryMcCrossan:我得到完全相同的部件,因为GMTString是标准化的,而不是本地的通过使用这些部件,你可以制作一个自定义格式:类似于
p[1]+“,“+p[3]+”:“+p[5]+”:“+p[2];
或其他什么……只是另一个选项;)
moment(newdate())
产生与
moment()
相同的结果,但更容易键入。;-)如果使用moment.js,它也应该使用它进行解析,因为OP的字符串是ISO 8601格式的
moment(str)
将完成这项工作。
str = str.replace(/(\d{4})-(\d{2})-(\d{2})T(\d{8}).*/,'$2 $3 $1, $4');