$new_date = preg_replace("!([01][0-9])/([0-9]{2})/([0-9]{4})!", "$3-$1-$2", $data[$c]);日期如下所示
04/02/2012, 12/31/2012但是当我得到像这样的输入时,它会失败
12/1/2011, 1/4/2011如何修复它,因为我完全是菜鸟的正则表达式...:(
非常感谢你的帮助。
发布于 2012-11-16 08:29:54
尝试:
!(\d{1,2})/(\d{1,2})/(\d{4})!\d的意思是一个数字,我认为它比[0-9]更方便,而且它们几乎是等效的。
发布于 2012-11-16 08:28:02
尝试:
!([01]?[0-9])/([0-9]{1,2})/([0-9]{4})!第二组上的{1,2}表示0-9之间的1位或2位数字。我还让第一部分接受1或2个数字,这样你就可以匹配3/12/2012和03/12/2012。
发布于 2012-11-16 08:28:25
只处理日期比使用正则表达式更容易。DateTime对象让这一切变得很简单:
$date = new DateTime('1/1/2013');
$new_date = $date->format('Y-m-d'); // Outputs 2013-01-01https://stackoverflow.com/questions/13408626
复制相似问题