从字符串日期开始昨天

Going yesterday from date of string

我有一个格式为“2016/10/10”的日期字符串。我正在尝试制作一个昨天带来它的功能,但我希望它在每个昨天都可以使用,并且手动完成,一段时间后我意识到它变得非常复杂并且无法检测到例如 2 月 29 日。

以相同的格式将其转换为昨天的字符串日期的最佳做法是什么?我几乎可以肯定一定有一种自动化的方式。

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

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

可以使用函数strtotime,第一个参数是"general string",第二个参数是相对日期

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

Note that I already used the date function to format.

最好使用面向对象的方式

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