如果今年已过去,请从明年开始

时间:2018-05-09 13:04:40

标签: php php-carbon

我使用碳作为日期。让我们以3月1日为例。默认情况下,Carbon会返回当前年份的3月1日。

//Returns current year value
$date = Carbon::parse('first day of March');

是否有可能从未来(明年)获得它,如果它已经在今年通过,而不使用if条件。

//Shorten this part
$date = Carbon::parse('first day of March');
if ($date->lessThanOrEqualTo(Carbon::now())) {
  $date->addYear();
}
$output = $date->format('d-m-Y');

2 个答案:

答案 0 :(得分:1)

Carbon只是PHP的DateTime类的包装类。

因此,这应该有效:

<?php

$date = new DateTime('2018-03-01');
$today = new DateTime();
if ($date < $today) {
    $date->modify('+1 year');
}
echo $date->format('d/m/Y');

输出:01/03/2019

在此处查看https://3v4l.org/i1HvL

在这里了解实际的PHP DateTime课程https://secure.php.net/manual/en/class.datetime.php

我不知道为什么你不会使用if if check if something。也许你更喜欢三元?

$date = ($date < $today) ? $date->modify('+1 year') : $date;

答案 1 :(得分:0)

也许不比你的方法更清洁,但它有所不同,而且它正在发挥作用 我创建了一个包含所有相关日期的数组,今天,3月1日和明年3月1日,并对它们进行排序 然后我在数组中找到“今天”的array_search并获取下一个值。

empleado.ts

老实说,我认为这比if()要慢,但它不会使用if()作为OP请求: - )