date.js计算不正确
date.js not calculating correctly
我正在尝试检查所选的日期是否是星期日(jquery ui),如果是,则将其调整为之前的星期六,并计算第5天、第4天和第3天。我的代码只是在同一天返回。
c1、c2和c3是相同的。
if(Date.parse($('#arrival_date').val()).is().sunday()) {
first_day = Date.parse($('#arrival_date').val()).add(-1).days();
}
else {
first_day = Date.parse($('#arrival_date').val());
}
console.log(first_day);
var c1 = first_day.add(-5).days();
var c2 = first_day.add(-4).days();
var c3 = first_day.add(-3).days();
您的问题是.add()
方法更改了first_day
变量。尝试
var c1 = first_day.clone().add(-5).days();
var c2 = first_day.clone().add(-4).days();
var c3 = first_day.clone().add(-3).days();
正如@trojandestroy所指出的(当is写这个答案时),你会得到这样的结果,因为你加起来的天数。
这可能有点违反直觉,但它的工作原理是这样的——通过调用first_day.add(-5).days();
,您可以更改first_day
的值。
我做了这个例子来证明它确实是这样工作的。
呼叫var c1 = first_day.add(-5).days();
后,c1
和first_day
都指向5天前。
所有.add()
语句都在同一对象上操作,并且将c1
、c2
和c3
设置为相同对象。这意味着有四个变量都等于同一个对象。
要解决此问题,请将构造函数与Date
对象的getTime()
方法组合起来,如下所示:
var c1 = new Date(first_date.getTime()).add(-5).days();
这是一个比较这两种方法的小提琴。
相关文章:
- 在 javascript 中计算不正确的问题
- date.js计算不正确
- jQuery重新计算总计和值,但最终总数不正确
- 在瞬间js中计算周数不正确
- jQuery 偏移量在某些页面上计算不正确
- 计算字符串时答案不正确
- 年龄计算不正确
- 为什么我在 JavaScript 中得到这个不正确的算术计算
- 使用点后有四位数字的十进制值计算中的结果不正确
- 当文本具有特殊字符时,offsetWidth计算不正确
- 使用Javascript从输入数组中查找平均值-计算不正确
- JavaScript计算结果不正确
- 为什么这个JavaScript函数在网站第一次加载时不能正确计算,但之后工作正常?
- Ng-if表达式计算不正确
- 罗马数字转换情况不正确计算
- computeDistanceBetween似乎计算不正确
- Angularjs的ngDisabled比较表达式不能正确计算
- 文本框值计算不正确
- 沙狐不正确地计算高度
- If语句计算不正确