Php 如果存在日期,则返回计算日期
我有下面的代码来添加日期Php 如果存在日期,则返回计算日期,php,date,if-statement,view,return-value,Php,Date,If Statement,View,Return Value,我有下面的代码来添加日期 $date = '[[lbc_dates_lbc_date]]'; $date = date('d F y', strtotime('+28 days', strtotime($date))); echo $date; 这非常适用于实际存在日期条目的情况,但是,对于日期条目尚不存在的情况,它会显示奇数日期(空白) 您能否修改代码,说明是否存在日期添加天数,否则留空 请参阅所附图片(错误以红色显示,正确视图以绿色显示) 谢谢strotime()无法解析日期时将返回FA
$date = '[[lbc_dates_lbc_date]]';
$date = date('d F y', strtotime('+28 days', strtotime($date)));
echo $date;
这非常适用于实际存在日期条目的情况,但是,对于日期条目尚不存在的情况,它会显示奇数日期(空白)
您能否修改代码,说明是否存在日期添加天数,否则留空
请参阅所附图片(错误以红色显示,正确视图以绿色显示)
谢谢strotime()
无法解析日期时将返回FALSE
。当您在第二次调用strotime()
时,这将被视为0
,即纪元时间
在尝试使用结果之前,请检查该结果
$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') : '';
基本上,它使用一个三元运算符来检查$date是否为null,如果不是,则为当前日期创建一个新的DateTime对象,添加28天,并以所选的格式进行回显。如果$date为null,它将只回显一个空字符串-“”
编辑:以上只是一个单行程序示例,一个好的做法是将其放入函数中 谢谢,我按照建议做了(见下文)$date='[[lbc_dates\u lbc_date | ifnull=ignore]]$parsed=strottime($date);如果($parsed){$date=date('dfy',strotime('+28天',$parsed));}否则{$date='';}现在所有日期都不显示。