我有下面的代码为日期添加天数。
$date = '[[lbc_dates_lbc_date]]';
$date = date('d F y',strtotime('+28 days',strtotime($date)));
echo $date;
这对于实际存在日期输入的情况非常有用,但是,对于尚不存在日期输入(空白)的情况,它显示一个奇数日期。
您可以修改代码以说是否存在日期,然后加上几天,否则留空?
请查看所附图片(红色为错误,绿色为正确视图)
谢谢
strtotime()
在无法解析日期时将返回FALSE
。当您将其用作第二次0
的基准时间时,会将其视为时期strtotime()
。
在尝试使用结果之前先进行检查。
$parsed = strtotime($date);
if ($parsed) {
$date = date('d F y',strtotime('+28 days',$parsed));
} else {
$date = '';
}
,
您应该使用DateTime对象存储和处理日期。
echo $date !== null ? (new DateTime($date))->add(new DateInterval('P28D'))->format('Your date format here') : '';
https://www.php.net/manual/en/class.datetime.php
基本上,它使用三元运算符检查$ date是否为null,如果不是,则为当前日期创建一个新的DateTime对象,添加28天并以选定的格式回显它。如果$ date为null,它将仅回显一个空字符串-”。
编辑:上面只是一个例子,一个好的实践是将其引入函数中。