在特定日期

时间:2018-05-28 15:49:18

标签: javascript php html css

我相信这是一个相对简单的问题(这里是一个JavaScript noob),但我似乎找不到这个特定日期函数的线程。我正在为一个学术团体进行网站迁移,从基于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:我不是要求比较两个日期,而是要在特定日期之后显示文本。

2 个答案:

答案 0 :(得分:0)

你可能想做这样的事情:

if (new Date() >= new Date(2018, 0, 16))

月总是从0开始,而天数从1开始。不要问为什么。

这是构造函数的定义方式:

new Date(year, monthIndex [, day [, hour [, minutes [, seconds [, milliseconds]]]]]);

有关Date()

的详细信息,请访问here

答案 1 :(得分:0)

&#13;
&#13;
//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);
&#13;
&#13;
&#13;