Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果存在日期,则返回计算日期_Php_Date_If Statement_View_Return Value - Fatal编程技术网

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='';}现在所有日期都不显示。