将8位整数转换为dd / mm / yyyy

时间:2014-01-29 14:05:48

标签: php date date-conversion

所以我在我的PHP脚本中有这个函数,它应该将日期作为8位整数,例如01042012,并将其转换为01/04/2012进行显示。

目前我正在尝试使用php的date()函数,如下所示:

$int = 01042012;

$date = date("d/m/Y", $int);

而不是$date的值为01/04/2012,而是显示为13/01/1970

这是因为date()希望我传递给它的日期是在unix时间吗?如果是这样,是否可能有更直接的方法在字符2和4之后拆分int并只插入斜杠,然后重新组合它?就像explode()所做的一样,但我没有任何角色可以分开。

3 个答案:

答案 0 :(得分:13)

使用DateTime::createFromFormat()静态方法,返回根据指定格式格式化的新DateTime对象:

$dt = DateTime::createFromFormat('dmY', '01042012');
echo $dt->format('d/m/Y');

答案 1 :(得分:4)

一种简单的方法;

$int = 01042012;

$day = substr($int,0,2);
$month = substr($int,2,4);
$year = substr($int,4);

$date = $day.'/'.$month.'/'.$year;

答案 2 :(得分:0)

基本上,你开始使用int值,而int值01042012实际上是1042012,因为前导零没有任何意义作为int。如果你以“01042012”开头作为一个字符串,你会更好地开始实现你想要的结果。