__blank
2016-03-06 23:01
var plus=mydate.setTime(mydate.getTime()+ 2* 60 * 60 * 1000) 声明个变量名出来的就是纯数字,还是乱的。这是为什么呢?
mydata是一个Date对象,它保存着一个时间。它有一个方法(C++中叫成员函数)setTime(msec)可以修改它所保存的这个时间。因为你想要修改的时间以参数的形式传递给setTime(msec),即括号里的msec。
而你用一个变量是接收setTime的返回值,那么它得到的是什么呢?那要看Date对象是怎么保存时间的,它保存的是某个时间距1970年1月1日0时0分0秒的毫秒数。而你说的那是乱的数字其实不是别的,就是这个毫秒数。因为太大了,你一眼看不出它是什么,所以你觉得它是乱的,你可以试着声明一个Date对象,把它的时间调到1970年1月1日0时0分0秒,再看下setTime的返回值你就会明白了。
其实setTime(msec)再修改了Date对象的时间的同时,也将这个时间以毫秒的形式返回了回来,所以你的plus接收到的正是这个毫秒数。不过你试了会发现差着8小时,这应该与时区有关吧,可以去查下与UTC相关的东西。
以上为本人拙见,若有不对请批评指正!
JavaScript进阶篇
468062 学习 · 21891 问题
相似问题