当我尝试使用<td>{{ date('d-m-Y', strtotime($object->date_expiry)) }} </td>
时,为什么我的视图中突然出现了一些随机值。在我的数据库中,我的日期为NULL但在我看来它显示日期01-01-1970,即使它假设为空白。这是一个错误还是什么?
View.blade.php:
@foreach ($data as $object)
<table class="table">
<tr>
<th>Date Expiry</th>
<td>{{ date('d-m-Y', strtotime($object->date_expiry)) }} </td>
</tr>
</table>
@endforeach
控制器:
public function gettestInfo($id) {
$data = test::where('id',$id)->get();
return view('view',compact('data'));
}
dd($ data)结果:
#original: array:5 [▼
"id" => 5
"name" => "test3"
"date_expiry" => null
"created_at" => "2017-12-01 01:22:10"
"updated_at" => "2017-12-01 01:22:10"
]
答案 0 :(得分:2)
日期时间将采用第一个初始日期,如果它为空,则为01-01-1970。
解释:
1970年1月1日是所谓的Unix时代。这是他们的日子 开始计算Unix时间。如果你把这个日期作为回报 值,它通常意味着将您的日期转换为Unix timestamp返回一个(接近)零结果。所以日期转换 没有成功。很可能是因为它收到错误的输入。
改为执行此操作
{{ ($object->date_expiry) ? date('d-m-Y', strtotime($object->date_expiry)) : null }}
它将检查$object->date_expiry
是否有值..它执行日期函数,否则返回null
修改强>
如果你想做if else语句
<td>
@if($object->date_expiry == something else)
{{ $object->date_expiry }}
@elseif($object->date_expiry == something else)
{{ // code }}
@endif
</td>
答案 1 :(得分:0)
因为您要转换具有空值的日期。 试试这个。
{{ ($object->date_expiry) ? date('d-m-Y', strtotime($object->date_expiry)) : null }}