日期 [第一个月] php 和 Carbon 的问题
Issue with dates [ first of month ] php and Carbon
我在比较日期时遇到问题。当我想知道一个日期(默认 php 日期)是否在两个 Carbon 日期之间时。我在一个月的第一天得到了不同。
$date = date("2017-05-01");
$date2 = date("2017-05-31");
$since = Carbon::now()->firstOfMonth();
$to = Carbon::now()->lastOfMonth();//->subDay();//$now->lastOfMonth();
$this->info('since '.$since);
$this->info('to '.$to);
$this->info('date '.$date);
$this->info('date2 '.$date2);
$this->info("-------------------");
if($date>= $since && $date <= $to ){
$this->info('date in');
}else{
$this->info('date out');
}
if($date2>= $since && $date2 <= $to ){
$this->info('date2 in');
}else{
$this->info('date2 out');
}
输出为:
since 2017-05-01 00:00:00
to 2017-05-31 00:00:00
date 2017-05-01
date2 2017-05-31
-------------------
date out
date2 in
我希望 $date 输出为 'date in'。
怎么了?
您正在比较 $date、$since 和 $to 之间的不同变量类型,因此输出很奇怪。
如果你 运行 这个:
dd($date, $since, $to);
你会看到 $date 是一个字符串,另外两个是对象。
你应该比较他们的时间戳:
$date = strtotime("2017-05-01");
$date2 = strtotime("2017-05-31");
$since = Carbon::now()->firstOfMonth()->timestamp;
$to = Carbon::now()->lastOfMonth()->timestamp;
现在 GMT 时间是 6 月,所以这也会导致您的程序输出 "date out"
我在比较日期时遇到问题。当我想知道一个日期(默认 php 日期)是否在两个 Carbon 日期之间时。我在一个月的第一天得到了不同。
$date = date("2017-05-01");
$date2 = date("2017-05-31");
$since = Carbon::now()->firstOfMonth();
$to = Carbon::now()->lastOfMonth();//->subDay();//$now->lastOfMonth();
$this->info('since '.$since);
$this->info('to '.$to);
$this->info('date '.$date);
$this->info('date2 '.$date2);
$this->info("-------------------");
if($date>= $since && $date <= $to ){
$this->info('date in');
}else{
$this->info('date out');
}
if($date2>= $since && $date2 <= $to ){
$this->info('date2 in');
}else{
$this->info('date2 out');
}
输出为:
since 2017-05-01 00:00:00
to 2017-05-31 00:00:00
date 2017-05-01
date2 2017-05-31
-------------------
date out
date2 in
我希望 $date 输出为 'date in'。 怎么了?
您正在比较 $date、$since 和 $to 之间的不同变量类型,因此输出很奇怪。 如果你 运行 这个:
dd($date, $since, $to);
你会看到 $date 是一个字符串,另外两个是对象。
你应该比较他们的时间戳:
$date = strtotime("2017-05-01");
$date2 = strtotime("2017-05-31");
$since = Carbon::now()->firstOfMonth()->timestamp;
$to = Carbon::now()->lastOfMonth()->timestamp;
现在 GMT 时间是 6 月,所以这也会导致您的程序输出 "date out"