我有一组从不同 XML 文件导入的时间戳。它们是这样的:
<field name="timestamp">2015-04-16T07:14:16Z</field>
所以我将它们中的一堆存储在一个名为 $timestamps 的数组中,如下所示:
2015-04-16T07:14:16Z
2015-04-24T14:34:50Z
2015-04-25T08:07:24Z
2015-04-30T07:48:12Z
2015-05-02T08:37:01Z
2015-05-09T10:41:45Z
2015-05-01T07:27:21Z
2015-05-07T09:41:36Z
2015-05-12T04:06:11Z
2015-05-12T05:52:52Z
2015-05-12T11:28:16Z
我只对日期部分感兴趣,对时间不感兴趣。我尝试使用 split() 函数拆分字符串。
$dates = array();
for ($i=0; $i<count($timestamps); $i++){
$dates = split ("T", $timestamps[$i]);
echo $dates[$i] . "<br>";
}
据我了解,它存储第一部分(T 之前),然后是 T 之后的部分。它如何只存储每个字符串的第一部分?
当我尝试这样做时:
echo $dates[1];
它可以很好地输出第一个日期。我不太确定其余的。
关于实现此目的的更好方法有什么建议吗?
谢谢!
最佳答案
你应该使用 strtotime和 date ,而不是字符串拆分和/或正则表达式。如果您的日期格式发生变化,这将有所帮助。
$dates = array();
foreach ($timestamps as $timestamp) {
$d = strtotime($timestamp);
$dates[] = date('Y-m-d', $d);
}
foreach ($dates as $date) {
echo $date . '<br/>';
}
关于php - 将字符串拆分为日期数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30407957/