Javascript创建不存在的日期
我写了一些JS,试图找出用户选择的月份的最后一个日期,我试图弄明白为什么会出现不存在的日期,比如2015年6月31日,问题可能是我如何计算月末,但我只是看不到我的方法来得出正确的结论。这是一个有趣的错误,所以我想看看你们是否有解决方案Javascript创建不存在的日期,javascript,jquery,date,Javascript,Jquery,Date,我写了一些JS,试图找出用户选择的月份的最后一个日期,我试图弄明白为什么会出现不存在的日期,比如2015年6月31日,问题可能是我如何计算月末,但我只是看不到我的方法来得出正确的结论。这是一个有趣的错误,所以我想看看你们是否有解决方案 var ealiest_effective_date = new Date(Date.parse("#{ruby_earliest_time_which_is_confirmed_correct.try(:strftime, "%m/%d/%Y")}")); va
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);
});
我不知道您的逻辑或计算,但当使用JavaScript处理日期时,我强烈建议使用它,它允许以一种简单的方式进行日期操作,还允许处理时区。看看吧,我想它能帮你
d = moment("20150231", "YYYYMMDD")
d.isValid()
false
moment("20150228", "YYYYMMDD").isValid()
true
我不知道您的逻辑或计算,但当使用JavaScript处理日期时,我强烈建议使用它,它允许以一种简单的方式进行日期操作,还允许处理时区。看看吧,我想它能帮你
d = moment("20150231", "YYYYMMDD")
d.isValid()
false
moment("20150228", "YYYYMMDD").isValid()
true
除非您之前已声明,否则您的变量为:
var ealiest_effective_time
但你指的是:
ealiest_effective_date
除非您之前已声明,否则您的变量为:
var ealiest_effective_time
但你指的是:
ealiest_effective_date
.getMonth JavaScript方法将月份作为基于零的值返回。例如,一月是0,十二月是11。在您的示例中,2015年6月31日实际上应该是7月31日,而不是6月31日
我也会小心使用下面的代码
date = Date.parse($(this).val());
它可能不适用于具有不同区域设置的人 .getMonth JavaScript方法将月份作为零基值返回。例如,一月是0,十二月是11。在您的示例中,2015年6月31日实际上应该是7月31日,而不是6月31日
我也会小心使用下面的代码
date = Date.parse($(this).val());
它可能不适用于具有不同区域设置的人 只要我为网络更换变量。这不是问题,但无论如何要投票!只要我为网络更换变量。这不是问题,但无论如何要投票!同意。迄今为止最好的图书馆与日期和本地化工作达成一致。迄今为止,与日期和本地化相关的最佳图书馆奖得主!为什么日期以0为基础?!胜利者!为什么日期以0为基础?!