我相信这是一个相对简单的问题(这里是一个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:我不是要求比较两个日期,而是要在特定日期之后显示文本。
答案 0 :(得分:0)
你可能想做这样的事情:
if (new Date() >= new Date(2018, 0, 16))
月总是从0开始,而天数从1开始。不要问为什么。
这是构造函数的定义方式:
new Date(year, monthIndex [, day [, hour [, minutes [, seconds [, milliseconds]]]]]);
有关Date()
答案 1 :(得分:0)
//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;