【问题标题】:Using new Date().getTime() to show future dates使用 new Date().getTime() 显示未来日期
【发布时间】:2014-02-06 19:13:10
【问题描述】:

我正在尝试获取一组可以更改所选帖子日期值的函数。

我在每个函数中使用 if else 语句来更改每个帖子的日期值, 日期过期时更改值有效,但我似乎无法更改未来的日期值。不知道如何使用 new Date().getTime() 来获取未来的日期

非常感谢您的帮助

这是一个小提琴 - http://jsfiddle.net/6QmRU/

代码如下

 $('.post-title').each(function () {
  if (new Date($(this).data('date')).getTime() < new Date().getTime()) {
    $(this).css({
        opacity: 0.5,
        border: '2px solid red'
    });
    $(this).find('.post-date-input').text('This has expired');
  }
  //Today
  else if (new Date($(this).data('date')).getTime() == new Date().getTime()){
    $(this).find('.post-date-input').text('This is today');
  }
  //Tommorow
  else if (new Date($(this).data('date')).getTime() == new Date().getTime() + 1){
    $(this).find('.post-date-input').text('This is tomorrow');
  }
});

【问题讨论】:

  • getTime 返回纪元的毫秒数,所以如果现在的日期与您帖子上的日期相匹配,您将非常幸运,因为这几乎就像中了彩票一样。您必须将 Date 对象重置为零时间 (00:00) 并仅比较天数。另请注意,控制台中显示了多个语法错误。
  • 请使用变量代替评估/写入new Date($(this).data('date')).getTime()new Date().getTime()$(this).find('.post-date-input').text(…)三次。
  • @adeneo 所以我目前的做法不正确?你能指出我最好的方法吗?

标签: javascript jquery date if-statement time


【解决方案1】:

问题领域

else if (new Date($(this).data('date')).getTime() == new Date().getTime());
                                                                          ^

else if (new Date($(this).data('date')).getTime() == new Date().getTime() + 1);
                                                                              ^

你有几个错位的;,删除它们

$('.post-title').each(function () {
    console.log(new Date($(this).data('date')))
    if (new Date($(this).data('date')).getTime() < new Date().getTime()) {
        $(this).css({
            opacity: 0.5,
            border: '2px solid red'
        });
        $(this).find('.post-date-input').text('This has expired');
    }
    //Today
    else if (new Date($(this).data('date')).getTime() == new Date().getTime()) {
        $(this).find('.post-date-input').text('This is today');
    }
    //Tommorow
    else if (new Date($(this).data('date')).getTime() == (new Date().getTime() + 1)) {
        $(this).find('.post-date-input').text('This is today');
    }
});

Fiddle DEMO

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 2020-03-12
    • 2020-01-12
    相关资源
    最近更新 更多