Pat*_*ani 8 php mysql datetime date datetime-format
我有这种格式的日期Fri, 15 Jan 2016 15:14:10 +0800
,我希望像这样显示时间2016-01-15 15:14:10
.
我尝试的是:
$test = 'Fri, 15 Jan 2016 15:14:10 +0800';
$t = date('Y-m-d G:i:s',strtotime($test));
echo $t;
Run Code Online (Sandbox Code Playgroud)
但它以这种格式显示日期:2016-01-15 7:14:10
它应该是2016-01-15 15:14:10
.
我怎样才能做到这一点?
rdi*_*diz 23
H
改为使用:
$test = 'Fri, 15 Jan 2016 15:14:10 +0800';
$t = date('Y-m-d H:i:s',strtotime($test));
echo $t;
Run Code Online (Sandbox Code Playgroud)
H:24小时格式的一小时,前导零到23
G应该是相同的,但是没有前导零.我怀疑你的PHP被设置为不同的时区+0800
.你能确认你的时区(date_default_timezone_get()
)吗?
OP确认他的时区设置为UTC,在这种情况下,它完全意识到它在早上7点显示,因为date
使用PHP默认时区.
如果你想"继承"时区,同时获得更大的灵活性,你应该切换到DateTime
:
echo (new DateTime($test))->format("Y-m-d H:i:s");
Run Code Online (Sandbox Code Playgroud)
https://www.w3schools.com/php/php_date.asp
date() 函数所需的格式参数指定如何格式化日期(或时间)。
以下是一些常用的日期字符:
以下是一些常用的时间字符:
https://www.php.net/manual/en/datetime.format.php
public DateTime::format ( string $format ) : string
Run Code Online (Sandbox Code Playgroud)
<?php
$datetime = new DateTime( "now", new DateTimeZone( "Europe/Bucharest" ) );
echo $datetime->format( 'Y-m-d H:i:s' );
Run Code Online (Sandbox Code Playgroud)