如何防止JS日期神奇地添加一个不存在的日期和月份
How to prevent JS Date from magically adding a non-existent day and month?
我使用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
对象并请求日期时,它将返回一个最初没有指定的日期。
除了在原始字符串上做一堆正则表达式处理之外,还有其他方法可以解决这个问题吗?
谢谢!
当我查询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() );
引用
-
Object.defineProperty() - JavaScript | MDN
-
Date.prototype.getDate() - JavaScript | MDN
相关文章:
- 正在将事件处理程序添加到不存在的类
- javascript如果图像不存在don't加载它
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 从int值来看,Javascript日期不正确
- 如何将一个函数附加到一个不存在的元素上
- moment.js在两个时区格式的日期之间存在差异
- 在scala或scalajs Diode中,现有类型中的任何一种都符合“;更新一个没有'还不存在”;
- Javascript设置日期不起作用,显示错误的时间
- 查找数组's按属性不存在于另一个数组中的对象
- 用javascript在对象上创建不存在的方法
- 仅当值不为'不存在
- casperjs-css选择器存在,但当单击它时会引发“”;CasperError:无法在不存在的选择器“”上调度mou
- 运行时不存在Javascript函数
- 错误“属性'日期选择器'在带有打字稿的类型'IAugmentedJQuery'上不存在
- 将数据添加到 JSON 中,用于不存在的日期
- 添加日期的Javascript;不存在于级数上
- 我正在访问日期的记录:如何分配一个值时,一个特定的日期不存在
- 如何防止JS日期神奇地添加一个不存在的日期和月份
- Javascript创建不存在的日期