<?php
$firstdate = '2011-11-16';
$sample = date("d-m-Y", strtotime($firstdate));
echo $sample;
?>
我在表格中有一列,日期格式为2011-11-16 但我反过来需要它,所以我使用了以下代码。
问题是,当date是0000-00-00时,它会打印01-01-1970。 有没有办法让它打印00-00-0000?请注意,我希望将其改为英国格式。 00-00-0000。
由于
答案 0 :(得分:1)
0000-00-00不是有效日期。显然没有0个月。
因此,如果您将其用作“完全没有约会”的占位符,那么解决方案就相当简单了:
if($date==='0000-00-00') {
echo '00-00-0000';
}
答案 1 :(得分:1)
问题在于日期在内部表示的方式。他们使用所谓的Unix time,其中日期表示为“Unix纪元”之后的秒数,即1970年1月1日。这就是为什么date
函数(正确)表示0(这是strtotime
在您将其传递给0000-00-00
时返回的原因)1970年1月1日。
我能想到的唯一解决方案就是:
<?php
$firstdate = '2011-11-16';
$sample = $firstdate == '0000-00-00' ? '00-00-0000' : date("d-m-Y", strtotime($firstdate));
echo $sample;
?>
答案 2 :(得分:1)
你可以这样做:
<?php
$firstdate = '2011-11-16';
$sample = $firstdate!=='0000-00-00'?date("d-m-Y", strtotime($firstdate)):''00-00-0000;
echo $sample;
?>
答案 3 :(得分:1)
获得空日期后,将其反转。
if( $firstdate == '0000-00-00') $sample = strrev( $firstdate);
else
{
$sample = date("d-m-Y", strtotime($firstdate));
}