24 小时格式的日期和时间
Date and time in 24 hours 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;
但它显示的日期格式是:2016-01-15 7:14:10
,应该是2016-01-15 15:14:10
。
我该怎么做?
改用H
:
$test = 'Fri, 15 Jan 2016 15:14:10 +0800';
$t = date('Y-m-d H:i:s',strtotime($test));
echo $t;
H: 24-hour format of an hour with leading zeros 00 through 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");
https://www.w3schools.com/php/php_date.asp
约会
date() 函数的必需格式参数指定如何格式化日期(或时间)。
以下是日期常用的一些字符:
- d - 表示一个月中的第几天(01 到 31)
- m - 代表一个月(01 到 12)
- Y - 代表年份(四位数)
- l(小写 'L')- 代表星期几
预约时间
以下是一些常用的时间字符:
- H - 小时的 24 小时格式(00 到 23)
- h - 带前导零的小时的 12 小时格式(01 到 12)
- i - 带前导零的分钟数(00 到 59)
- s - 带前导零的秒数(00 到 59)
- a - 小写的 Ante meridiem 和 Post meridiem(上午或下午)
https://www.php.net/manual/en/datetime.format.php
public DateTime::format ( string $format ) : string
<?php
$datetime = new DateTime( "now", new DateTimeZone( "Europe/Bucharest" ) );
echo $datetime->format( 'Y-m-d H:i:s' );
我有一个这种格式的日期 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;
但它显示的日期格式是:2016-01-15 7:14:10
,应该是2016-01-15 15:14:10
。
我该怎么做?
改用H
:
$test = 'Fri, 15 Jan 2016 15:14:10 +0800';
$t = date('Y-m-d H:i:s',strtotime($test));
echo $t;
H: 24-hour format of an hour with leading zeros 00 through 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");
https://www.w3schools.com/php/php_date.asp
约会
date() 函数的必需格式参数指定如何格式化日期(或时间)。
以下是日期常用的一些字符:
- d - 表示一个月中的第几天(01 到 31)
- m - 代表一个月(01 到 12)
- Y - 代表年份(四位数)
- l(小写 'L')- 代表星期几
预约时间
以下是一些常用的时间字符:
- H - 小时的 24 小时格式(00 到 23)
- h - 带前导零的小时的 12 小时格式(01 到 12)
- i - 带前导零的分钟数(00 到 59)
- s - 带前导零的秒数(00 到 59)
- a - 小写的 Ante meridiem 和 Post meridiem(上午或下午)
https://www.php.net/manual/en/datetime.format.php
public DateTime::format ( string $format ) : string
<?php
$datetime = new DateTime( "now", new DateTimeZone( "Europe/Bucharest" ) );
echo $datetime->format( 'Y-m-d H:i:s' );