js new Date().getTime()出问题了。

我2我骄傲 2012-06-01 11:39:33
a='2012-5-31 15:35:00'
b='2012-6-1 11:41:00'

var a= new Date(theYear,theMonth,theDay,theHour,theMinute).getTime(); //选择的时间
var b= new Date(Year,Month,Day,Hour,Minute).getTime(); //现在的时间


为啥 a 的值 会大于b???
...全文
1735 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ParanoidKing 2012-06-01
  • 打赏
  • 举报
回复
js中Date对象的Month数值是要比真实数值小1的,这一点用js的时间函数时一定要注意。你alert(new Date(2012,6,1))看到的是jul,而不是jun。
用b='2012-6-1 11:41:00'构造的实际是7月1日的11:41对象。
而用a='2012-5-31 15:35:00',因为6月没有31号,所以系统认为是7月1日。这样构造出来的对象就是7月1日15:35,所以你看到a>b。
构造时间对象时要把month-1
我2我骄傲 2012-06-01
  • 打赏
  • 举报
回复
都没人了吗?
我2我骄傲 2012-06-01
  • 打赏
  • 举报
回复
getTime 这有问题???
我2我骄傲 2012-06-01
  • 打赏
  • 举报
回复
我想当然了。。。
我2我骄傲 2012-06-01
  • 打赏
  • 举报
回复
谢谢 ParanoidKing 一会结贴。
我2我骄傲 2012-06-01
  • 打赏
  • 举报
回复
谢谢 孟子 大牛!
ParanoidKing 2012-06-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
没太明白,那我要怎么改才对呢?
[/Quote]

不是吧,我说的还不够明白么?
js日期的Month是0~11,表示1~12月
你用new Date(2012,6,1,11,41)得到的不是6月1日,而是7月1日的11:41
用new Date(2012,5,31,15,35)得到的不是5月31日,而是7月1日的15:35。因为6月没有31日,所以系统会转成这个。
要把Month减1去构造Date对象才能得到正确是日期,也就是
a='2012-5-31 15:35:00'
b='2012-6-1 11:41:00'

var a= new Date(theYear,theMonth-1,theDay,theHour,theMinute).getTime(); //选择的时间
var b= new Date(Year,Month-1,Day,Hour,Minute).getTime(); //现在的时间

孟子E章 2012-06-01
  • 打赏
  • 举报
回复
js语法中
"2012-5-36"
可以解析成日期的,
其他语言一般不行,这是js与其他语言不同的地方
孟子E章 2012-06-01
  • 打赏
  • 举报
回复
js里面的月份是
0,1,...11
没有12
是以0开始为1月,
11代表12月,
就是这么定义的,你不要想当然5就是5月
我2我骄傲 2012-06-01
  • 打赏
  • 举报
回复
			function fenzhong(bt)
{
var ReqTime = new Date()//当前时间
var Year=0;
var Month=0;
var Day=0;
var Hour = 0;
var Minute = 0;
//var Second = 0;

//初始化时间
Year = ReqTime.getYear();
Month = (ReqTime.getMonth()+1);
Day = ReqTime.getDate();
Hour = ReqTime.getHours();
Minute = ReqTime.getMinutes();
//Second = day.getSeconds();

//----------------------------------------------

//var bt = "2011-07-03 12:13:14";
/*bt = bt.replace(/:/g, "-"));
bt = bt.replace(/\s/g, "-"));*/
bt = bt.replace(new RegExp(':', 'g'), "-");
bt = bt.replace(new RegExp(' ', 'g'), "-");

var ary = bt.split("-");
var theYear = parseInt(ary[0]);
var theMonth = parseInt(ary[1]);
var theDay = parseInt(ary[2]);
var theHour = parseInt(ary[3]);
var theMinute = parseInt(ary[4]);
//var theSecond = parseInt(ary[5]);

var a= new Date(theYear,theMonth,theDay,theHour,theMinute).getTime(); //选择的时间
var b= new Date(Year,Month,Day,Hour,Minute).getTime(); //现在的时间
return parseInt((b-a)/60000); //返回整形分钟数
}
我2我骄傲 2012-06-01
  • 打赏
  • 举报
回复
我这是 5-31号啊 为什么要判断有没有6月31号?
我2我骄傲 2012-06-01
  • 打赏
  • 举报
回复
没太明白,那我要怎么改才对呢?

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧