为了账号安全,请及时绑定邮箱和手机立即绑定

在修改时间的前面加个变量名,输出的值就是纯数字,为什么呢?

var plus=mydate.setTime(mydate.getTime()+ 2* 60 * 60 * 1000)     声明个变量名出来的就是纯数字,还是乱的。这是为什么呢?

正在回答

1 回答

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相关的东西。


以上为本人拙见,若有不对请批评指正!

2 回复 有任何疑惑可以回复我~
#1

__blank 提问者

反正是明白为什么了,然而什么c++,UTC之类的等js搞定之后再恶补吧。非常感谢,说得通俗易懂的。
2016-03-07 回复 有任何疑惑可以回复我~
#2

yux_84

貌似set这一类的函数都是没有返回值的
2016-03-31 回复 有任何疑惑可以回复我~
#3

慕桂英3019087

解惑了解惑了!
2018-07-31 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在修改时间的前面加个变量名,输出的值就是纯数字,为什么呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信