如果存在日期,则返回计算的日期

我有下面的代码为日期添加天数。

$date = '[[lbc_dates_lbc_date]]';
$date = date('d F y',strtotime('+28 days',strtotime($date)));
echo $date;

这对于实际存在日期输入的情况非常有用,但是,对于尚不存在日期输入(空白)的情况,它显示一个奇数日期。

您可以修改代码以说是否存在日期,然后加上几天,否则留空?

请查看所附图片(红色为错误,绿色为正确视图)

如果存在日期,则返回计算的日期

谢谢

deipfqu850726 回答:如果存在日期,则返回计算的日期

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,它将仅回显一个空字符串-”。

编辑:上面只是一个例子,一个好的实践是将其引入函数中。

本文链接:https://www.f2er.com/3058033.html

大家都在问