[英]Preg_split on 2 characters
我正在嘗試在2個變量(T&+)上拆分字符串,在“ 2018-06-25T10:32:00 + 01:00”上使用時會將其拆分為:-
[0] => 2018-06-25
[1] => 10:32:00
[2] => 01:00
所以我以為我可以使用“ preg_split(” /(T | +)/“,$ ent)”,但是它根本沒有用。
我的代碼(在PHP中)是:-
$ent = "2018-06-25T10:32:00+01:00";
print_r(preg_split("/ (T|\+) /", $ent));
我有什么想法我做錯了嗎?
您的正則表達式中有問題。 您可以像下面這樣給它;
print_r(preg_split("/T|\+/", $ent));
不使用正則表達式,您也可以使用php的Datetime類將其拆分為日期和時間(我更喜歡)。
$ent = '2018-06-25T10:32:00+02:00';
$datetime = new DateTime($ent);
$date = $datetime->format('Y-m-d');
$time = $datetime->format('H:i:s');
$offset = $datetime->getOffset() / 3600;
echo $date.'<br/>';
echo $time.'<br/>';
echo $offset.'<br/>';
希望能幫助到你!!
在PHP中解析日期不是regex
的最佳用例。 也許這是用其他語言處理日期的最佳方法,而不是PHP 。 PHP提供的DateTime
手動解析更快,更安全地處理日期。
這是您的代碼應如下所示:
$date = new DateTime("2018-06-25T10:32:00+01:00");
echo $date->format('Y-m-d'), "\n";
echo $date->format('H:i:s'), "\n";
echo $date->format('P'), "\n";
查看結果: https : //3v4l.org/gFvLp
閱讀有關DateTime
類和DateTime::format()
。
在您的示例中,您使用了具有空格含義的交替(T|\\+)
。
您可以做的是刪除空格並使用(T|\\+)
或替代使用字符類 [T+]
$ent = "2018-06-25T10:32:00+01:00";
print_r(preg_split("/[T+]/", $ent));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.