Bas*_*e33 5 javascript asp.net date
我有一个等于00:30的Javascript Date对象,当做:
date.setMinutes(date.getMinutes() + 30);
Run Code Online (Sandbox Code Playgroud)
导致日期对象等于00:00.
有谁知道为什么会这样?
这是代码的使用位置:
for (var i = openTime; i <= closeTime; i.setMinutes(i.getMinutes() + timeIncrement)) {
var time = i.getHours() + (i.getHours() == 0 ? '0' : '') + ':' + i.getMinutes() + (i.getMinutes() == 3 || i.getMinutes() == 0 ? '0' : '');
$(timeClientId).append($('<option />').val(time).text(time));
}
Run Code Online (Sandbox Code Playgroud)
上面的脚本创建了从上午10:00到第二天凌晨02:00可用的时间列表.
经过多次成功的迭代后,它运行正常,直到它到达午夜00:00.
有人可以帮忙吗?
谢谢!
答案/解决方案:
这个问题是由于夏令时问题造成的,所以本周六时钟会继续发展.由于某些奇怪的原因,在12:30加入30分钟后,使用.setMinutes()将其重置为12:00.这使它保持无限循环.解决方案是使用i.setTime(i.getTime()+ timeIncrement*60*1000)添加分钟.这对问题进行了排序.
为所有答案干杯!
您只需设置分钟.所以当然30分钟+ 30分钟的时钟等于60分钟,即0分钟.
使用这个聪明的方法(它很聪明,因为它适用于所有翻转!):
function addMinutes(inDate, inMinutes)
{
var newdate = new Date();
newdate.setTime(inDate.getTime() + inMinutes * 60000);
return newdate;
}
var date = new Date();
alert(addMinutes(date,-30));?
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2321 次 |
| 最近记录: |