年份动态转换为日期 --- PHP

Year dynamically into date --- PHP

有谁知道如何将当前日期数据动态加载到 PHP 中的日期中? 例如:年份,自动更新。 我正在尝试以下操作但没有成功。

$nowDate = date('d/m/Y');
$cYear = date('Y');             
$dateBegin = DateTime::createFromFormat('d/m/Y', '01/01/'.$cYear);
$dateEnd = DateTime::createFromFormat('d/m/Y', '31/12/'.$cYear);

if ($nowDate >= $dateBegin && $nowDate <= $dateEnd)
{
  echo "is between";
} else {
    echo 'OUT!';
}

注意数据类型

string date ( string $format [, int $timestamp ] )
public static DateTime DateTime::createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )

做同款比较

$nowDate = date('d/m/Y');
$cYear = date('Y');

$dateBegin = DateTime::createFromFormat('d/m/Y', '01/01/'.$cYear);
$dateEnd = DateTime::createFromFormat('d/m/Y', '31/12/'.$cYear);

// change to DateTime type
$nowDate2 = DateTime::createFromFormat('d/m/Y', $nowDate) ;
echo $nowDate2->format('Y-m-d')."\n";
echo $dateBegin->format('Y-m-d')."\n";
echo $dateEnd->format('Y-m-d')."\n";

if ($nowDate2 >= $dateBegin && $nowDate2 <= $dateEnd)
{
  echo "is between";
} else {
    echo 'OUT!';
}

可以比较each-other之间的DateTime个对象:

$dateNow = new DateTime();          
$dateBegin = new DateTime($dateNow->format('Y-01-01 00:00:00'));
$dateEnd = new DateTime($dateNow->format('Y-12-31 23:59:59'));

if ($dateBegin <= $dateNow && $dateNow <= $dateEnd) {
  echo "is between";
} else {
    echo 'OUT!';
}

demo