DateInterval:从现在起的年份
问题描述:
我需要修改代码,以便它将发送2年的日期而不仅仅是一年。DateInterval:从现在起的年份
我试图更改为$year_from_now->add(new DateInterval('P2Y'));
但它不起作用。
请参见下面的代码:
$year_from_now=new DateTime();
$year_from_now->add(new DateInterval('P1Y'));
$dates_array = array();
foreach ($tariffs as $beds24_room_type=>$tariff_type_dates) {
$counter = 1;
foreach ($tariff_type_dates as $tariff_type=>$tariff_dates) {
$odo = "p".$counter;
foreach ($tariff_dates as $date=>$tariff_details) {
$this_date=date_create(date("Y/m/d" , strtotime($date)));
$diff=date_diff($year_from_now,$this_date);
if (
(int)$diff->format("%R%a") <= 0 && // Up to one year from today
(int)$diff->format("%R%a") > -365 // Not earlier than today
) {
答
。在你自己的代码中的问题。 P2Y
应该可以工作。
尝试在一个空文件来执行下面的代码,你会发现它是正确的
<?php
$year_from_now=new DateTime();
$year_from_now->add(new DateInterval('P2Y'));
echo $year_from_now->format('Y-m-d H:i:s');
?>
'添加(“+ 1年”)'不这样做的吗? – Qirel
'$ date-> add(new DateInterval('P2Y'));'是正确的工作代码;在generell中'它不会工作'不是一个有效的错误描述 - 指定你期望的结果,以及实际结果是什么 - 用最少的代码显示错误行为。 –
添加对date_default_timezone_set()的调用。这是我必须做的,才能让它在我的系统上运行。 – Nic3500