首页 > 解决方案 > 要显示的 JavaScript

在某个日期之后

问题描述

我相信这是一个相对简单的问题(这里是一个 JavaScript 菜鸟),但我似乎找不到这个特定日期函数的线程。我正在为一个学术团体进行从基于 PHP 的网站到 drupal CMS 的网站迁移。一些 PHP 显然已经坏了,我正在尝试用 Javascript 替换简单的脚本。给我带来很多麻烦的一个问题是如何让文本仅在某个日期之后出现。在 PHP 中,我的功能代码是:

<?php if (date('YmdH') > 2018011710 ) { ?>
    <p class="error">Please note that the deadline for submitting proposals has passed.</p>
<?php } ?>

所以我需要在 JavaScript 中做同样的事情。这是我想出的(我为我的草率代码提前道歉,因为我是 JavaScript 的初学者):

第一个隐藏 DIV 的 CSS:

<style type="text/css">
    .DateDiv { display: none;}
</style>

然后是 div 本身:

<div class="DateDiv">
    <h3>Please note that the deadline for submitting proposals has passed.</h3>
</div>

最后,我的 JavaScript 不起作用:

<script>
  $(document).ready(function() {
    var today = new Date();
    var dd = today.getDate();
    var mm = today.getMonth();
    var yyyy = today.getFullYear();

    if(dd<10) {
      dd = '0'+dd
    } 

    if(mm<10) {
      mm = '0'+mm
    } 

    today = mm + '/' + dd + '/' + yyyy;

    // show only if current date is after January 16, 20018
    if (today > 0, 16, 2018) {
      $(".DateDiv").show();
    }
  });
</script>

如果有人能帮我解决这个问题,我将不胜感激。如果我以一种比它需要的更复杂的方式来解决这个问题,我也会很感激任何建议。

提前致谢。

PS:我不是要求比较两个日期,而是在某个日期之后显示文本。

标签: javascriptphphtmlcss

解决方案


//show only if current date is after January 16, 20018
var date_to_check_with = new Date("20180116").getTime();

//.getTime() will give time in milliseconds (epoch time) 
var current_date = new Date().getTime();

console.log(date_to_check_with < current_date);


推荐阅读