首页 > 解决方案 > 将字符串拆分为两个 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]);

任何帮助,将不胜感激。

标签: phpregex

解决方案


您需要使用 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);

您可以查看在线演示


推荐阅读