Php 使用日期格式从字符串创建时间对象
我有一个Php 使用日期格式从字符串创建时间对象,php,date,time,Php,Date,Time,我有一个$timeString格式为东部时间晚上8:00。我正在尝试使用以下命令创建日期对象: $time = date_create_from_format('g:i A e', $timeString); (来源:) 当我使用date(“H:I:s”,$time)回显结果时,我得到的是东部时间7:00 PM。无论我提供什么时间,我总是收到晚上7点(格林威治标准时间0:00) 我是否错误地使用了格式参数?date\u create\u from\u format()返回DateTime对象。
$timeString
格式为东部时间晚上8:00。我正在尝试使用以下命令创建日期对象:
$time = date_create_from_format('g:i A e', $timeString);
(来源:)
当我使用date(“H:I:s”,$time)
回显结果时,我得到的是东部时间7:00 PM
。无论我提供什么时间,我总是收到晚上7点(格林威治标准时间0:00)
我是否错误地使用了格式参数?
date\u create\u from\u format()
返回DateTime对象
。而date()
期望第二个参数是时间戳(int)。所以你不应该使用date()
。改用DateTime::format()
。这里有一些问题。一个是,ET
不是有效的时区标识符。尝试使用EST
(或EDT
)。见:
其次,date\u create\u from\u format
(或DateTime::createFromFormat
)返回一个DateTime
对象,因此不能将其与date()函数一起使用
您的代码打印00:00:00
,因为date\u create\u from\u format
失败,所以返回FALSE
date()。因此,您得到了00:00:00
您需要使用DateTime
方法来处理DateTime
对象。像这样:
$timeString = '8:00 PM EST';
$time = date_create_from_format('g:i A e', $timeString);
echo date_format($time, 'H:i:s');
我认为ET
不是一个有效的时区标识符。请尝试EST
。谢谢。事实上,一旦我正确地使用了date_格式,ET似乎就如预期的那样得到了处理。正如您所指出的,文档中没有提到它。知道它为什么起作用吗?@BenPackard:ET
对我不起作用,所以不,不知道。