首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP/MySQL:列出并爆炸多个字符

PHP/MySQL:列出并爆炸多个字符
EN

Stack Overflow用户
提问于 2017-10-09 19:01:55
回答 1查看 256关注 0票数 0

这是我基本上已经完成的事情,我想知道是否有一种方法来清理代码并使其正常工作。

我有一个表,其中包含用户加入的日期和时间(:MM:SS)。我希望将不同的值分开,所以我使用了两个list explode函数,但只能拆分一组值:

代码语言:javascript
运行
复制
$joined = $row ["joined"]; // <- "2008-06-03 15:01:08"
list ($year, $month, $day) = explode ("-", $joined);
list ($hour, $minute, $second) = explode (":", $joined);
list ($seperation) = explode (" ", $joined);
echo $joined . "<br>\n";
echo $year . "<br>\n";
echo $month . "<br>\n";
echo $day . "<br>\n";
echo $hour . "<br>\n";
echo $minute . "<br>\n";
echo $second . "<br>\n";

产出如下:

代码语言:javascript
运行
复制
2008-06-03 15:01:08 ($joined)
2008 ($year)
06 ($month)
03 15:01:08 ($day)
2008-06-03 15 ($hour)
01 ($minute)
08 ($second)

我想知道如何将3个字符(破折号、冒号和空格)炸开,以便正确使用变量,并使其看起来如下所示:

代码语言:javascript
运行
复制
2008-06-03 15:01:08 ($joined)
2008 ($year)
06 ($month)
03 ($day)
15 ($hour)
01 ($minute)
08 ($second)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-09 19:08:20

尝试以下几点:

代码语言:javascript
运行
复制
$year = date("Y", strtotime($joined));
$month = date("m", strtotime($joined));
$day = date("d", strtotime($joined));
$hour = date("H", strtotime($joined));
$minute = date("i", strtotime($joined));
$second = date("s", strtotime($joined));

或者一个更好的解决方案:

代码语言:javascript
运行
复制
$date = getdate(strtotime($joined));

在处理日期时,最好使用日期解析,而不是使用explode或regex。上面的代码使用strtotime()将日期字符串转换为Unix时间戳,然后根据日期模式输出它们。

第二种解决方案是更好的,因为它返回一个关联数组的时间场。

但是,如果您真的想使用list()explode,这里有一个解决方案。

代码语言:javascript
运行
复制
list($date, $time) = explode(" ", $joined);
list ($year, $month, $day) = explode ("-", $date);
list ($hour, $minute, $second) = explode (":", $time);

它首先分离日期和时间,然后在它们上分别使用explode

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46653301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档