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

sh3*_*fme 3 php date date-conversion

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

目前我正在尝试使用php的date()功能如下:

$int = 01042012;

$date = date("d/m/Y", $int);
Run Code Online (Sandbox Code Playgroud)

而不是它显示$date的值.01/04/201213/01/1970

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

Gla*_*vić 13

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

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


Aly*_*yas 5

一个简单的方法来做到这一点;

$int = 01042012;

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

$date = $day.'/'.$month.'/'.$year;
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用 sscanf('01042012', '%02d%02d%04d', $day, $month, $year); 代替 3x `substr()` (3认同)