从 Unix 时间戳代码中仅提取小时和分钟。

Extracting only the hours and minutes from a Unix Timestamp code.

我正在使用 php 并希望转换从 xml 文件中删除的时间。 XML中的时间是9:45的<startTime>0945</startTime>和1:30的<startTime>1330</startTime>

我正在使用 strtotime(xml_time) 获取 unix 时间戳。但现在我只需要提取时间本身。我不需要将它与当前时间进行比较,不需要包含任何日期信息,也不关心时区。任何人都可以帮助我使用哪个功能(如果不同)或如何修改 strtotime() 来完成这个?

谢谢!

您可以使用date提取您需要的时间参数:

echo $time = date("H:i:s",strtotime($xml_time));

要将 1330 转换为 13:30,您可以使用任何字符串操作函数,例如:

$input = '1330';
var_dump(mb_substr($input, 0, 2) . ':' . mb_substr($input, 2, 2));

demo

如果您向 strtotime() 提供不完整的日期,它将使用当前日期的位和使用默认时区来填补空白。这将导致随机意外结果,具体取决于脚本运行的时间:

var_dump( date('H:i:s', strtotime('0230')) );

string(8) "02:30:00"

var_dump( date('H:i:s', strtotime('0230', mktime(1, 30, 50, 3, 26, 2017))) );

string(8) "03:30:00"