Php 检查过了多少天
我怎样才能写得正确? 我想检查从发布开始日到发布结束日已经过去了多少天,如果超过30天,将显示一条消息Php 检查过了多少天,php,javascript,Php,Javascript,我怎样才能写得正确? 我想检查从发布开始日到发布结束日已经过去了多少天,如果超过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
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;
}
使用getTime函数获取毫秒差:
if(d.getTime() - b.getTime() > 2592000000)
30天有2592000毫秒使用getTime函数获取毫秒差:
if(d.getTime() - b.getTime() > 2592000000)
30天有2592000毫秒编辑:澄清后更新
最好在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;
}
编辑:澄清后更新
最好在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;
}
转换a和c并将它们转换为历元时间戳自1970年1月1日起的秒,unix时间戳。看看两者的区别。将结果除以60秒(一分钟)×60分钟(一小时)×24小时(一天),就得到了天数的差值。将a和c转换为历元时间戳,并将它们转换为历元时间戳1970年1月1日起的秒,unix时间戳。看看两者的区别。将结果除以60秒一分钟*60分钟一小时*24小时一天,那么你就有了天数的差异。如果你必须将这两个日期传输到客户端JS,例如,在客户端显示它们,这可能是更好的选择。如果你告诉我们$this->item->publish\u end和$this->item->publish\u start的格式为。开始时间:2012-06-24,结束时间:2012-07-24如果您必须将这两个日期传输到客户端JS,例如,在客户端显示它们这样做可能是更好的选择。如果您告诉我们$this->item->publish\u End和$this->item->publish\u start的格式是什么,这会有所帮助。开始时间:2012-06-24,结束时间:2012-07-24如果您使用jQuery,您可以尝试插件注释not answer,因为它不是普通的PHP,并且OP没有提到jQueryTImeago是用于显示的。我认为OP希望确保任何内容都不能发布超过一个月。如果您使用jQuery,您可以尝试插件注释not answer,因为它不是普通的PHP,OP没有提到jQueryTImeago是用于显示的。我认为OP想要确保a在一个月内不能发布任何东西。b和d是日期对象,你可以只做d-b>2.592e9。这就是答案!!我花了两天的时间才把它弄出来…谢谢!!当b和d是日期对象时,yuo可以只做d-b>2.592e9。这就是答案!!我花了两天的时间才把它弄出来…谢谢!!