Javascript转换日期
我从一个API结果中得到这个Javascript转换日期,javascript,php,date,Javascript,Php,Date,我从一个API结果中得到这个“20131218”日期/时间值 我想做的是将这个日期转换成类似这样的内容“2013-12-18”。我知道这在PHP中非常简单,只需执行以下代码: echo date("Y-m-d",strtotime('20131218')); 输出:2013-12-18 这是我在javascript中尝试的: var myDate = new Date("20131218"); console.log(myDate); 但是输出是Date{Invalid Date},显然这是
“20131218”
日期/时间值
我想做的是将这个日期转换成类似这样的内容“2013-12-18”
。我知道这在PHP中非常简单,只需执行以下代码:
echo date("Y-m-d",strtotime('20131218'));
输出:2013-12-18
这是我在javascript中尝试的:
var myDate = new Date("20131218");
console.log(myDate);
但是输出是Date{Invalid Date}
,显然这是错误的
我的问题是,在javascript中,strotime的等价物是什么?或者,如果没有等效值,我将如何使用javascript将该值转换为预期结果(2013-12-18
)
非常感谢您的帮助
谢谢!:) 它显示无效日期的原因是,它希望它采用格式
Following format: YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS
如果您使用以下格式分解字符串,只需在相关位置添加破折号,就可以使用newDate
1. var myDate = new Date("2013-12-18");
alert(myDate);
2. var myDate = new Date(2013,12,18);
最终,您可以修改字符串并以上述格式使用它。该值无效,无法将其转换为日期。因此,您可以从PHP代码中以适当的格式发送它,如
20131218
或者将Javascript中的值转换为类似的格式
var dateVal="20131218";
/*
// If it's number ******* //
var numdate=20131218;
var dateVal=numdate.toString();
*/
var year=dateVal.substring(0,4);
var mnth=dateVal.substring(4,6);
var day=dateVal.substring(6,8);
var dateString=year+"-"+mnth+"-"+day;
var actualDate = new Date(dateString);
alert(actualDate);
Javascript有一个方法,但您拥有的字符串不适合传递给它。您不需要创建日期对象来格式化字符串。考虑:
function formatDateStr(s) {
s = s.match(/\d\d/g);
return s[0] + s[1] + '-' + s[2] + '-' + s[3];
}
alert(formatDateStr('20131218')); // '2013-12-18'
如果要将其转换为日期对象,则:
function parseDateStr(s) {
s = s.match(/\d\d/g);
return new Date(s[0] + s[1], --s[2], s[3]);
}
退房