PHP DOM元素串打破了的strtotime()或的preg_replace()
-
27-09-2019 - |
题
我使用PHP获取从API XML(说的3倍快)。我收到来自所有数据的返回正确的字符串。问题是当我尝试用以下两种方法来格式化时间字符串:
$dataset = $xmlDoc->getElementsByTagName( "Class" );
foreach( $dataset as $row ) {
$xmlStartTimes = $row->getElementsByTagName( "StartTime" );
$xmlStartTime = $xmlStartTimes->item(0)->nodeValue;
echo $xmlStartTime; // Gives eg. 12/30/1899 6:15:00 PM
// Convert Time to 24H
// Attempt 1:
$cleanStartTime = preg_match('^12/30/1899 (0[1-9]|1[0-2]):(0[1-9]|[1-5][0-9]):([00]) (AM|PM|pm|am)$', $xmlStartTime, $matches);
print_r($matches); // Gives empty array
// Attempt 2:
$cleanStartTime = date("H:i", strtotime("$xmlStartTime"));
echo $cleanStartTime // Gives 1:00
}
感谢考虑看看。
解决方案
这些时间是UNIX外时间戳范围(32位)。使用日期时间扩展,而不是:
<?php
$a = new DateTime("12/30/1899 6:15:00 PM");
echo $a->format("H:i");
给出18:15
。
不隶属于 StackOverflow