我需要将日期字符串转换为以下格式:" d / m / Y" 要转换的日期字符串,并不总是相同,有时是2014年7月2日,有时是2014年2月13日,有时是2014-02-07。
我使用此命令进行转换:
date("d/m/Y", strtotime($datestring))
我注意到,有时候我会在01/01/1970因为strtotime返回的错误而得到。
我把它缩小到这个:
strtotime("07/02/2014")
返回1409605200这没关系....
strtotime("13/02/2014")
返回false !!!!
在此论坛中阅读有关strtotime的所有帖子。 这个解决方案也没有帮助,因为我事先并不知道具体的格式:
$a = strptime('22-09-2008', '%d-%m-%Y');
$timestamp = mktime(0, 0, 0, $a['tm_mon']+1, $a['tm_mday'], $a['tm_year']+1900);
这里有什么问题? 我需要什么解决方案?
答案 0 :(得分:2)
你可以这样做:
/** This method will convert a datestring to d/m/Y
* and respect therefore d/m/Y for incoming value
* @params $dateString
* @retun $dateString
*/
function getMyDate($dateString)
{
$dateString = str_replace('/', '-', $dateString);
$date = new DateTime($dateString);
return $date->format('d/m/Y');
}
//----------------------------
$var = '13/02/2014 ';
echo getMyDate($var);
//--> returns: 13/02/2014
$var = '2014-02-07';
echo getMyDate($var);
//--> returns: 07/02/2014
SQL小提琴:http://ideone.com/TTRDTA