如何解析格式为“YYYYmmdd"的日期在 JavaScript 中? [英] How to parse a date in format "YYYYmmdd" in JavaScript?
本文介绍了如何解析格式为“YYYYmmdd"的日期在 JavaScript 中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是一个菜鸟问题:
如何在没有外部库的情况下以 "YYYYmmdd"
格式解析日期?如果输入字符串不是这种格式,我想得到 invalid Date
(或者 undefined 如果它更容易的话).
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 的在您的字符串中
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屋!
查看全文