如何解析格式为“YYYYmmdd”的日期在JavaScript? [英] How to parse a date in format "YYYYmmdd" in JavaScript?
本文介绍了如何解析格式为“YYYYmmdd”的日期在JavaScript?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是一个noob问题:
This is a noob question:
如何解析格式为YYYYmmdd
的日期,而不需要外部库?如果输入字符串不是这种格式,我想得到无效的日期
(或未定义,如果它会更容易)。
How to parse a date in format "YYYYmmdd"
without external libraries ? If the input string is not in this format I would like to get invalid Date
(or undefined if it will be easier).
推荐答案
function parse(str) {
if(!/^(\d){8}$/.test(str)) return "invalid date";
var y = str.substr(0,4),
m = str.substr(4,2),
d = str.substr(6,2);
return new Date(y,m,d);
}
用法:
parse('20120401');
更新:
正如Rocket所说,几个月在js中是0,如果月份不是0,那么在你的字符串中<0>
As Rocket said, months are 0-based in js...use this if month's aren't 0-based in your string
function parse(str) {
if(!/^(\d){8}$/.test(str)) return "invalid date";
var y = str.substr(0,4),
m = str.substr(4,2) - 1,
d = str.substr(6,2);
return new Date(y,m,d);
}
更新:
更严格地检查日期的有效期。采用HBP验证日期的方式。
More rigorous checking for validity of date. Adopted HBP's way to validate date.
function parse(str) {
var y = str.substr(0,4),
m = str.substr(4,2) - 1,
d = str.substr(6,2);
var D = new Date(y,m,d);
return (D.getFullYear() == y && D.getMonth() == m && D.getDate() == d) ? D : 'invalid date';
}
这篇关于如何解析格式为“YYYYmmdd”的日期在JavaScript?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文