2

我怎样才能正确地写这个?我想检查从 publish_start 日到 publish_end 日已经过去了多少天,当它们超过 30 天时,将显示一条消息。

var a = new Date("<?php echo $this->item->publish_start; ?>");
var b = a.getDate();

var c = new Date("<?php echo $this->item->publish_end; ?>");
var d = c.getDate();

var e =  d - b ;

    if( e > 30) {
        alert("<?php echo JText::_('You cant put more than 30 days'); ?>");
                return false;
     }
4

3 回答 3

3

编辑:澄清后更新

您最好在 PHP 中找到日期之间的差异,然后将该值传递给 JavaScript。

我不知道这两个变量的日期格式是什么,但如果它们是 unix 时间戳,你可以这样做:

var e = <?php echo floor(strtotime($this->item->publish_end)-strtotime($this->item->publish_start))/86400); ?>
if( e > 30) {
    alert("<?php echo JText::_('You cant put more than 30 days'); ?>");
            return false;
}
于 2012-06-25T00:48:06.540 回答
1

使用 getTime() 函数获取毫秒差:

if(d.getTime() - b.getTime() > 2592000000)

(30 天有 2 592 000 000 毫秒)

于 2012-06-25T00:47:47.070 回答
0

转换 a 和 c 并将它们转换为纪元时间戳(自 1970 年 1 月 1 日以来的秒数,unix 时间戳)。取两者之差。将结果除以(一分钟 60 秒 * 一小时 60 分钟 * 一天 24 小时),那么你就有了天数的差异。

于 2012-06-25T00:49:37.383 回答