问答详情
源自:7-5 返回/设置时间方法

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

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

提问者:__blank 2016-03-06 23:01

个回答

  • Penthonyon
    2016-03-06 23:43:35
    已采纳

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


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