昨天从字符串日期开始

时间:2016-12-16 03:26:26

标签: php date php-carbon

我有一串格式为'2016/10/10'的日期字符串。我试图创建一个函数来实现它昨天,但是我希望它能够与昨天一起工作,并且手动完成它,过了一段时间我意识到它变得非常复杂并且未能检测到例如2月29日。

使用相同的格式将字符串中的日期带到昨天的最佳做法是什么?我几乎肯定必须有一种自动化的方式。

 $date = '2016/10/10';
 $newDate = goYesterday($date);

p.s。:这不是时间戳,所以我应该远离碳。我不确定。

2 个答案:

答案 0 :(得分:1)

您可以使用函数strtotime,它将“常规字符串”作为第一个参数,第二个参数是相对日期。

$date = '2016/10/10';
$newDate = date('Y/m/d', strtotime('yesterday', strtotime($date)));
echo $newDate;
  

请注意,我已使用date函数进行格式化。

答案 1 :(得分:0)

最好使用面向对象的方式

$date = '2016/10/10';
$dateObj = DateTime::createFromFormat('Y/m/d', $date);
$interval = new DateInterval('P1D');
$dateObj->sub($interval);
$newDate = $dateObj->format('Y/m/d');