Javascript - getTime()不起作用

时间:2014-07-09 11:43:51

标签: javascript html

我在html中做了一个小问题,有10个问题,每个问题都在一个单独的html页面中。在用户按下index.html中的START按钮时,我执行以下操作:

var s = new Date();
sessionStorage.start_test = s;

当他按下测验第10页的FINISH按钮时,我会这样做:

var e = new Date();
sessionStorage.finish_test = e;

最后,我有一个显示成绩的页面,以及回答测验所花费的时间,具有以下内容:

var start = sessionStorage.getItem( "start_test" );
var fin = sessionStorage.getItem( "finish_test" );
var time = fin.getTime() - start.getTime();
alert( time );

但这似乎不起作用,因为它没有显示javascript警告框,并且在控制台中我收到以下错误:

Uncaught TypeError: Object Wed Jul 09 2014 13:38:06 GMT+0200 has no method 'getTime'

我做错了什么?任何帮助将非常感谢!

2 个答案:

答案 0 :(得分:3)

将Date对象添加到本地或会话存储时,它会被序列化为字符串,因此,当您使用getItem()检索它时,会得到一个字符串。要将其转换回Date对象,请将此字符串传递给Date()构造函数:

var myDate = new Date( localStorage.getItem( 'foobardate' ) );

答案 1 :(得分:1)

sessionStorage 是字符串,而不是 Date()实例

var start = new Date(sessionStorage.getItem( "start_test" ));
var fin = new Date(sessionStorage.getItem( "finish_test" ));
var time = fin.getTime() - start.getTime();
alert( time );