从字符串中提取日期+ PHP
问题描述:
您好,我希望从给定的字符串中获取“2014年1月8日”的日期。从字符串中提取日期+ PHP
Wednesday, 8 January 2014 at 17:40
如果您可以使用preg_replace
将会很好吗?
答
PHP strtotime
为 “在” 理解这个词坏的,所以这段代码应该工作而不是返回1970年:
$date = date("d F Y", strtotime(str_replace('at ','',"Wednesday, 8 January 2014 at 17:40")));
echo $date;
你可以根据需要更改格式;只需更改字母d F Y
并返回不同值的字母列表可以找到in the manual。
答
与爆炸刚才提出的解决方案()函数:
$str = "Wednesday, 8 January 2014 at 17:40";
$ex1 = explode(", ", $str);
$ex2 = explode(" at", $ex1[1]);
$value = $ex2[0];
echo $value;
答
尝试正则表达式模式是这样的:
$str = 'Wednesday, 8 January 2014 at 17:40';
$date = preg_replace('/\w+,\s([a-zA-Z0-9\s]+)\sat\s([0-9:]+)/i', '$1', $str);
echo $date;
答
的DateTime
类让你的生活更简单!
<?php
$date = DateTime::createFromFormat('l, j F Y \at G:i','Wednesday, 8 January 2014 at 17:40');
echo $date->format('j F Y'); //"prints" 8 January 2014
答
下面是简单的代码来获得2014 1月8日给你:)
<?php
$txt = 'Wednesday, 8 January 2014 at 17:40';
preg_match('#(?<=,\s)\d{1,2}\s\w+\s\d{1,4}(?=\sat)#', $txt, $result);
?>
你至今尝试过什么? –
我还没有想法与preg_replace,但现在usig它$ res = date('M d,Y',strtotime(trim(substr($ res,10,15)))); – alex
我怀疑你需要使用preg_replace,因为它格式良好,不应该有任何问题将它转换为带'strtotime'的日期,然后使用'date'来合成它'$ date = date(“d FY“,strtotime(”2014年1月8日星期三17:40“));' – Breezer