php - 将字符串拆分为日期数组

标签 php arrays

我有一组从不同 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];

它可以很好地输出第一个日期。我不太确定其余的。

关于实现此目的的更好方法有什么建议吗?

谢谢!

最佳答案

你应该使用 strtotimedate ,而不是字符串拆分和/或正则表达式。如果您的日期格式发生变化,这将有所帮助。

$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/

相关文章:

PHP cookie 时间格式不起作用

PHP:动态对象名称

javascript - 如何将一个数组值映射到另一个数组值以生成结果

java - 确定 Java 中的等效数组

java - 从数组列表中删除元素并更新 java 中的制表符大小

c++ - 添加冒号 ( :) to an unsigned char in C++

php - Laravel 价格过滤器

php 意外的 T_VARIABLE,这里没什么帮助

php - 100,000 次写入的 Redis 性能

python - 如何在 64 位环境中处理 ctypes 中的字符串数组 (char **)?