【问题标题】:Converting e.timeStamp into the current date/time?将 e.timeStamp 转换为当前日期/时间?
【发布时间】:2020-02-13 13:47:43
【问题描述】:

我在 'li' 元素上设置了一个事件监听器,该元素包含一个应该输出当前日期的 span 元素。

我有以下几行代码:

var date = new Date();
date.setTime(e.timeStamp);
var showDate = date.toDateString();
$(this).append('<span class="date-clicked">' + showDate + '</span>');

这个想法是使用事件对象的“timeStamp”属性获取从 1970 年 1 月 1 日(纪元/unix 时间)开始的毫秒数,然后使用 var showDate 获取正确的日期格式以显示在 span 元素中相应的 li 元素。

顺便说一句,我正在使用 Firefox。

每次单击 li 元素时,它都会向我显示纪元时间“1970 年 1 月 1 日星期四”,而不是我想看到的“2020 年 2 月 13 日星期四”。

有没有办法让 e.timeStamp 显示当前日期而不是纪元/unix 日期?

任何正确方向的指针或提示都感谢人们。谢谢。

【问题讨论】:

  • 什么是e.timeStamp?由于e.timeStamp 不返回任何内容(可能是undefined),当然 setTime 只会将日期设置为 unix 时间的第一个时间戳。
  • 猜猜你可以像这样创建日期:var date = new Date(e.timeStamp)...
  • 第一行代码创建了一个新的 Date 对象,它的时间设置为点击事件的时间(第二行)。事件被点击的时间然后被转换为可以读取的日期(第三行)。
  • 有趣的是,我尝试了你的建议 Terry,但它并没有达到我想要的效果。观察:var date = new Date(e.timeStamp);控制台日志(日期); var clicked = date.toDateString();以上在控制台查看时仍然输出纪元时间 呵呵
  • 你为什么不直接使用 'new Date()' 而不是 'showDate' 像 $(this).append('' + new Date( ) + '');

标签: javascript jquery object events unix-timestamp


【解决方案1】:

@Manny D,我认为我们可能在同一本书上工作,因为您发布的代码看起来与我遇到的问题几乎相同。这是我用来解决问题的代码,顺便说一下,eo 是事件对象。我添加了一个正斜杠以使其看起来更整洁......

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

【讨论】:

  • 这将始终显示今天的日期...(new Date() 返回当前日期)。我想你想要date.toDateString()...
猜你喜欢
  • 2021-12-23
  • 2013-09-26
  • 2015-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多