php - 将字符串拆分为两个 Datetime 对象
问题描述
我有这种字符串09:00-18:00
,我想得到 2\DateTime。右边的时间返回一个对象,左边的时间返回另一个对象。我尝试使用拆分,但我的解决方案似乎并不好,这就是我要求另一种解决方案的原因。这是我的解决方案:
// Get start time and end time separated by "-"
$split = \preg_split('/[\s-]+/', $line['intervention_hour']);
// Get hour number and minute separated by "h"
$start = \preg_split('/[:]+/', $split[0]);
$end = \preg_split('/[:]+/', $split[1]);
任何帮助,将不胜感激。
解决方案
您需要使用 DateTime::createFromFormat
$line = '09:00-18:00';
$split = explode('-', $line);
$start = DateTime::createFromFormat ( 'H:m', $split[0]);
$end = DateTime::createFromFormat ( 'H:m', $split[1]);
print_r($start);
echo '>>>';
print_r($end);
您可以查看在线演示
推荐阅读
- datadog - 用于活动 SFTP 连接的 datadog 中的最佳指标类型
- elasticsearch - 如何在 logstash 管道输出中格式化“cloud_auth”
- autohotkey - 如何消除 AutoHotKey 脚本中的尾随空格
- javascript - 里面的 ReactJS 代码{...}不渲染
- c++ - OpenCV imread(std::string filename, int flags) 在 c++ 中使用字符串文件名的变量时出现问题
- python - 并行处理捕获失败python
- java - 从 PySpark 运行 trainLDA 时面临 py4j 错误
- javascript - 为什么这个 SVG 动画被切成两半?
- youtube - 限制获取 Youtube 评论
- amazon-web-services - AWS Elasticsearch Service 在生产环境中抛出“没有可用于处理请求的服务器”