繁体   English   中英

如何在 PHP 中用 1(日/年)增加日期?

[英]How to increment date with 1 (day/year) in PHP?

我有一个存储在数组中的日期:

$this->lines['uDate']

日期的格式不是固定的。 我可以用这个改变:

  define('DATETIME_FORMAT', 'y-m-d H:i');

如何将我的 uDate 增加一定的天数或年数?


我的问题与这个有关:
将日期增加一个月
但是,在我的情况下,日期格式是动态的。
那么,我可以这样做吗?

$time= $this->lines['uDate'];
$time = date(DATETIME_FORMAT, strtotime("+1 day", $time));
$this->lines['uDate']= $time;

DATE_ADD()

并考虑如下变化:

define(DATETIME_FORMAT, 'y-m-d H:i');

$time = date(DATETIME_FORMAT, strtotime("+1 day", $time));

如果您有时间戳,可以使用一些简单的计算来执行此操作。

$date = strtotime($this->lines['uDate']); //assuming it's not a timestamp\
$date = $date + (60 * 60 * 24); //increase date by 1 day
echo  date('d-m-y', $date);
$date = $date + (60 * 60 * 24 * 365); //increase date by a year
echo  date('d-m-y', $date);

您还可以使用mktime()方法执行此操作: http//php.net/manual/en/function.mktime.php

function add_date($givendate,$day=0,$mth=0,$yr=0) 
{
      $cd = strtotime($givendate);
      $newdate = date('Y-m-d h:i:s', mktime(date('h',$cd),
    date('i',$cd), date('s',$cd), date('m',$cd)+$mth,
    date('d',$cd)+$day, date('Y',$cd)+$yr));
      return $newdate;
}

我在PHP帮助中找到了这个

另一种有用的方法,如果你想要一个对象而不是一个字符串:

$date = DateTimeImmutable::createFromFormat('Y-m-d', '2022-01-05'); // just an exemplary date

$date = $date->add(date_interval_create_from_date_string('1 day')); // count up

显着差异:

date_add() 更改原始对象,而 DateTimeImmutable::add() 不会并且只是返回新对象。 根据所需的行为,使用一种或另一种。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM