我对此非常困惑,也许这是我看不到的简单事情。如果我想看看今天的日期是否过去,我应该能够做到这样的事情吗?
if( $league->date_start <= Carbon::now() ){
$join = false;
$message = 'Sorry, the league has already started';
}
如果我将日期转出
$league->date_start = 2017-07-31 00:00:00
Carbon::now() = 2017-11-01 16:29:27
$league->date_start
是受保护的日期,因此它是碳实例
但这不起作用,如果我将其切换到$league->date_start >= Carbon::now()
它可以工作,不会让我加入。我知道&#34;联盟&#34;开始日期是过去的,所以不应该是$league->date_start <= Carbon::now()
?????
答案 0 :(得分:33)
内置的Carbon方法isPast
,您可以使用:
$league->date_start->isPast()
确定日期是否已过去
答案 1 :(得分:2)
尝试使用if ($league->date_start->diffInSeconds() >= 0)
。方法diffInSeconds
返回当前时间与碳实例之间的差异。
以下是修补程序输出的示例 -
>>> $now = \Carbon\Carbon::now();
=> Carbon\Carbon {#648
+"date": "2017-11-01 16:41:04.000000",
+"timezone_type": 3,
+"timezone": "UTC",
}
>>> $now->diffInSeconds();
=> 5
>>> $now->diffInSeconds();
=> 7
>>> $now->diffInSeconds();
=> 8
>>> $now->diffInSeconds();
=> 10
>>> $now->diffInSeconds() > 0
=> true
答案 2 :(得分:1)
查看carbon docs上的“比较”部分。您应该致电var checkStatet = function() {
jQuery.ajax({
url: 'check_diffex.php?od=$sdsst'
}).done(function(data) {
//lookup the element just once
var time = jQuery('#rbtntime');
//initialize the time
var o = 2700;
//start loop delay
setTimeout(function countdown(){
var minutes = Math.floor(o / 60);
var seconds = o % 60;
//update the time
time.html(minutes.toString() + ':' + seconds.toString());
//decrement the time for next iteration
o--;
//so long as time is not zero, loop
if (o > 0) setTimeout(countdown, 1000);
}, 1000);
});
}
checkStatet();
来比较两个碳实例。