jQuery Date()函数返回1969年12月31日而不是当前日期

时间:2017-10-30 14:14:28

标签: javascript jquery html date

我从Jon Duckett的书中学习jQuery" Javascript& jQuery:交互式前端开发"。到目前为止,我从本书中复制的所有代码似乎都运行得很顺利,但是这段代码让我难以理解。基本上,当您单击HTML中的列表项时,它会显示li旁边发生的click事件的日期。它有效,但日期显示在1969年12月31日,而不是对象点击日期。我一直在读如何解决这个问题,但我没有运气。是否有不同的方法来获得相同的结果,或者我只是遗漏了代码中的某些内容?

jQuery代码段和jsfiddle链接如下: jsFiddle

$(function(){
   $('li').on('click', function(e){
    $('li span').remove();
    var date = new Date();
    date.setTime(e.timeStamp);
    var clicked = date.toDateString();
    $(this).append('<span class="date">' + clicked + ' ' + e.type + '</span>');
  });
});

2 个答案:

答案 0 :(得分:8)

这是因为e.timeStamp返回DOMHighResTimeStamp而不是DOMTimeStamp。这是非常少的。因此,它将日期设置为默认为12/31/1969。

new Date(),使用当前日期和时间创建一个新的日期对象。你不需要在这里明确地设置时间:

var date = new Date();
var clicked = date.toDateString();

答案 1 :(得分:1)

删除第date.setTime(e.timeStamp);行,事情正常:

$(function(){
    $('li').on('click', function(e){
        $('li span').remove();
        var date = new Date();
        var clicked = date.toDateString();
        $(this).append('<span class="date">' + clicked + ' ' + e.type + '</span>');
    });        
});