恢复2个括号[]之间的两个日期

时间:2016-11-22 19:43:24

标签: php date

我得到一个字符串,其中两个日期位于两个括号之间,并用逗号分隔:

[2016-09-07],[2016-11-16]

如何恢复这些日期并将它们分为两个变量$startDate$endDate

3 个答案:

答案 0 :(得分:2)

假设你以字符串形式获得,你可以使用explode

 $myStartString = "[2016-09-07],[2016-11-16]";

如果您需要,可以这样删除括号

 $remove = ['[',']'];
 $myString = str_replace( $remove, "", myStartString);

然后

 $myArray = explode(',' $myString);

 $startDate = $myArray[0];
 $endDate = $myArray[1];

或者没有括号:

$myString = '2016-09-07,2016-11-16';
$myArray = explode(',', $myString);
$startDate = $myArray[0];
$endDate = $myArray[1];
echo $startDate. ' '.$endDate ;

但如果你有一个规范化的数据库,那就更好了

答案 1 :(得分:2)

使用explode()str_replace(),您可以获得所需的2个日期。

$dum_column = '[2016-09-07],[2016-11-16]';
$t = explode(',', $dum_column);

$startdate = str_replace(array('[',']'), '', $t[0]);
$enddate   = str_replace(array('[',']'), '', $t[1]);

trim()也可以使用

$dum_column = '[2016-09-07],[2016-11-16]';
$t = explode(',', $dum_column);

$startdate = trim($t[0], '[]');
$enddate = trim($t[0], '[]');

答案 2 :(得分:2)

试试这个

Preg_match_all("/(\d{4}-\d{2}-\d{2})/", $myString, $match);
$start = $match[1][0];
$end = $match[1][1];