我使用moment.js和JavaScript Date构造函数自动解析大量日期,这些日期的格式可以是任何格式。
考虑以下代码:
var dateString = "June 2013";
var dateObj = new Date(dateString);
console.log(dateObj); // Sat Jun 01 2013 00:00:00 GMT+0100 (BST)我们可以看到,行为是将日期设置为1号(如果没有指定,则与月份类似)。
我理解这种行为,但是当我查询Date对象并请求日期时,它将返回一个最初未指定日期的日期。
除了在原始字符串上做一堆正则表达式处理之外,还有什么方法可以解决这个问题吗?
谢谢!
发布于 2017-02-01 00:10:44
当我查询Date对象并请求日期时,它将返回一个最初未指定日期的日期。
使用变量存储字符串,然后在这些实例上使用defineProperty覆盖getDate回调:
var dateString = "June 2013";
var foo = new Date(dateString);
if (dateString.match(/\s[0-31]\s/) === null)
{
Object.defineProperty(foo, 'getDate', {value: function(){return null} });
}
console.log(foo.getDate() );
参考
https://stackoverflow.com/questions/25381268
复制相似问题