我的字符串格式为07_Dec_2010,我需要将其转换为2010年12月7日
如何使用单一陈述
实现以下目标答案 0 :(得分:3)
如果你使用的是PHP 5.3,你也可以使用以下方法来a)解析日期字符串,b)根据你的喜好对其进行格式化:
$formatted = date_create_from_format('d_M_Y', '07_Dec_2010')->format('d M, Y');
(date_create_from_format()
也可以是DateTime::createFromFormat()
)
如果你还没有使用5.3,你可以使用以下方法:a)将你的字符串转换为strtotime()
理解的格式,然后b)格式化你喜欢的格式:
$formatted = date('d M, Y', strtotime(str_replace('_', '-', '07_Dec_2010')));
所有这一切,如果您只想移动部分字符串,其他答案都可以。
答案 1 :(得分:1)
您可以使用explode
功能执行此操作:
$dt = '07_Dec_2010';
list($d,$m,$y) = explode('_',$dt); // split on underscore.
$dt_new = $d.' '.$m.','.$y; // glue the pieces.
您也可以使用preg_replace
的一次调用来执行此操作:
$dt_new = preg_replace(array('/_/','/_/'),array(' ',','),$dt,1);
或者也作为:
$dt_new = preg_replace('/^([^_]*)_([^_]*)_(.*)$/',"$1 $2,$3",$dt);
答案 2 :(得分:0)
$new_date = preg_replace('/(\d+)_(\w+)_(\d+)/', '${1} ${2}, ${3}', $date);
根据需要安排$ {1},$ {2},$ {3}