Javascript创建不存在的日期
Javascript creates dates that dont exist
我写了一些JS来尝试并提出用户选择的月份的最后日期,我试图弄清楚为什么它会提出不存在的日期,例如6/31/2015,问题可能是围绕我如何计算月末,但我只是看不到我的方式在这里得出正确的结论。这是一个有趣的bug,所以我想看看你们是否有解决方案。
var ealiest_effective_date = new Date(Date.parse("#{ruby_earliest_time_which_is_confirmed_correct.try(:strftime, "%m/%d/%Y")}"));
var minimumtime = Date.parse(new Date(ealiest_effective_date.getFullYear(), ealiest_effective_date.getMonth() + 2, 0));
$('.selected-date').change(function (e) {
date = Date.parse($(this).val());
user_selected_date = new Date(date);
console.log(user_selected_date.getMonth()+'/'+user_selected_date.getDate()+'/'+user_selected_date.getFullYear());
var possibleResultantEndOfMonth = Date.parse(new Date(user_selected_date.getFullYear(), user_selected_date.getMonth() + 2, 0));
var terminationEndOfMonth = new Date(Math.max(possibleResultantEndOfMonth,minimumtime));
var end_of_month_date = terminationEndOfMonth.getMonth()+'/'+terminationEndOfMonth.getDate()+'/'+terminationEndOfMonth.getFullYear();
$('#should_be_end_of_month').val(effective_date);
});
.getMonth()
JavaScript方法返回月份作为从零开始的值。1月是0,12月是11。在你的例子中,6/31/2015实际上应该是7月31日,而不是6月
我也要小心下面的代码
date = Date.parse($(this).val());
对于不同地区设置的人可能不起作用。
我不知道你的逻辑或计算,但在JavaScript中使用日期时,我强烈建议使用Moment.js,它允许以一种简单的方式进行日期操作,也允许处理时区。看一看,我想它会对你有帮助的。
d = moment("20150231", "YYYYMMDD")
d.isValid()
false
moment("20150228", "YYYYMMDD").isValid()
true
除非您之前声明过,否则您的变量为:
var ealiest_effective_time
但是你引用的是:
ealiest_effective_date
相关文章:
- 正在将事件处理程序添加到不存在的类
- 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创建不存在的日期