我有一串格式为'2016/10/10'的日期字符串。我试图创建一个函数来实现它昨天,但是我希望它能够与昨天一起工作,并且手动完成它,过了一段时间我意识到它变得非常复杂并且未能检测到例如2月29日。
使用相同的格式将字符串中的日期带到昨天的最佳做法是什么?我几乎肯定必须有一种自动化的方式。
$date = '2016/10/10';
$newDate = goYesterday($date);
p.s。:这不是时间戳,所以我应该远离碳。我不确定。
答案 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');