2017-04-17 25 views
1

PHP:PHP印刷错误的日期

<?php echo date("d-m-Y",strtotime($pet['pet_lost_date']));?> 

变量值: -

[pet_lost_date] => 16/04/2017 

输出:

01-01-1970 

为什么我搜索了很多,但我没有发现任何有用请大家帮帮我。

为什么出现错误的日期?错误在哪里?

而我如何从给定的日期计算到全天的月份和年份?

+0

你确定吗?测试它,并得到我的结果<?php回声日期(“dmY”,strtotime('16/04/2017'));?> –

+0

是的,我确定它发生了 –

+0

if $ pet ['pet_lost_date']'coming从查询中,你会不会考虑使用[MySQL日期和时间函数](https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html)并确保' $ pet ['pet_lost_date']'在使用之前不是空的 – OldPadawan

回答

0

date()不承认dd/mm/yy格式

做象下面这样: -

<?php 
if(!empty($pet['pet_lost_date'])){ 
    echo date("d-m-Y",strtotime(str_replace('/','-',$pet['pet_lost_date']))); 
} 
?> 

输出: - https://eval.in/777593

使用date_diff(): -

https://eval.in/777610

+1

但是空的'$ pet ['pet_lost_date']'将返回'01-01-1970'我相信,所以他必须确保他的变量不是空的,这实际上可以,你不觉得吗? – OldPadawan

+1

@OldPadawan你是对的,还需要一个空支票 –

+0

我很确定是var是空的,但:) :) – OldPadawan

0

您需要格式化的日期稍有不同:

$pet['pet_lost_date'] = "16/04/2017"; 
$pet['pet_lost_date'] = str_replace('/', '-', $pet['pet_lost_date']); 
echo date("d-m-Y",strtotime($pet['pet_lost_date'])); 

输出:

16-04-2017