我试图将javascript日期格式(示例' dd / mm / yy')转换为PHP等效值(示例' d / m / Y')。这适用于jQuery datepicker UI。
我找到了一个函数(未经测试)反之亦然,here。
我改变了一下看起来像这样:
function dateFormat(){
$pattern = array(
//day
'dd',
'd',
'DD',
'o',
//month
'MM',
'M',
'mm',
'm',
//year
'yy',
'y'
);
foreach($pattern as &$p)
{
$p = '/'.$p.'/';
}
$replace = array(
//day
'd', //day of the month
'j', //3 letter name of the day
'l', //full name of the day
'z', //day of the year
//month
'F', //Month name full
'M', //Month name short
'm', //numeric month leading zeros
'n', //numeric month no leading zeros
//year
'Y', //full numeric year
'y' //numeric year: 2 digit
);
return preg_replace($pattern, $replace, 'dd/mm/yy');
}
然而,我没有返回预期的' d / m / Y'而是得到了' j / n / Y'。我认为它按顺序进行更换;即在d之前找到dd并首先替换它。发生了什么事?
感谢。
答案 0 :(得分:1)
您可以将strtr与关联数组一起使用(必须完成它):
$trans = array('dd' => 'd',
'mm' => 'm',
'yy' => 'Y',
'd' => 'j');
$phpDateFormat = strtr($datePickerFormat, $trans);
请注意,2个字符序列必须位于数组的开头。