PHP中的英国日期格式

时间:2012-01-18 17:09:32

标签: php

<?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。

由于

4 个答案:

答案 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));
}