我的日期格式为yyyyMMdd,即20160110,但无法使用此方法转换新日期(“20160110”),因为它提供无效日期错误
答案 0 :(得分:3)
这不是与 Date()一起使用的有效日期格式。而是使用ISO 8601 syntax(YYYY-MM-DD)。如果您有yyyymmdd
格式的日期变量,那么您可以这样做:
new Date(date.replace(/(....)(..)(..)/,"$1-$2-$3"))
来自MDN:
语法
直接电话:
Date.parse(dateString)
隐含电话:
new Date(dateString)
参数
<强> dateString 强>
表示RFC2822或ISO 8601日期的字符串(可以使用其他格式,但结果可能是意外的)。
答案 1 :(得分:1)
使用正则表达式:
var date = "20160226".match(/(\d{4})(\d{2})(\d{2})/).map(x => +x); // ES6 to parse as integer
date[2] -= 1; // cause month starts at index 0
date = new Date(date[1], date[2], date[3])
console.log(date);