例如
$string = "Today is March 24 2014. My Birthday is on 3/24/2014";
如何用不同格式提取这两个日期?
答案 0 :(得分:0)
您需要使用createFromFormat()
来执行此操作,并指定应使用哪种格式进行解析。
如果您正在寻找不需要指定格式的功能,它将无法正常工作。例如:1/2/2014
。首先是Februari,还是Januari第二?
因此,假设您的月份在10岁以下时没有获得前导零,那将是:
$date1 = DateTime::createFromFormat('F j Y', 'March 24 2014');
$date2 = DateTime::createFromFormat('n/j/Y', '3/24/2014');
答案 1 :(得分:0)
试试这个
<?php
$string = "Today is March 24 2014. My Birthday is on 3/24/2014";
$temp=explode('.',str_replace(' My Birthday is on ','',str_replace('Today is ', '', $string)));
echo date('Y-m-d',strtotime($temp[0]));
echo "<br/>";
echo date('Y-m-d',strtotime($temp[1]));
?>
<强>输出强>
2014-03-24
2014-03-24
答案 2 :(得分:-2)
我知道如何从字符串中提取一些日期,我使用,这个
试试这个
preg_match('/(\d?\d [A-Za-z]+ \d\d\d\d) at (\d\d\:\d\d)/', $editdate, $matches);
print_r($matches);
$date = $matches[1];
$time = $matches[2];
这将适用于所有情况,虽然代码看起来很难看,
这可以很好地工作,对于第一种情况,你可以先将字符串拆分为第二种情况。