将自定义日期格式字符串转换为yyyy / mm / dd

时间:2014-02-24 02:55:13

标签: php date datepicker date-format

我的日期格式看起来有点像这样:

  

Sun Jun 29 2014 08:00:00 GMT + 0800(马来半岛标准时间)

当我尝试输出从验证函数获取的值时,这来自 x-editable datepicker

但是,无论我从何处获取日期格式,如何将此日期转换为yyyy/mm/dd格式?它不是一个日期对象,但实际上只是一个输出上述内容的长字符串。我需要能够将其转换为 2014-06-29 。非常感谢!

1 个答案:

答案 0 :(得分:5)

您应该使用正则表达式来提取字符串的相关部分,然后将PHP日期函数应用于它:

$str = "Sun Jun 29 2014 08:00:00 GMT+0800 (Malay Peninsula Standard Time)";
$pat = "/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat) (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (?:0?[1-9]|[1-2][0-9]|3[0-1]) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT\\+[0-9]{4}/";
$date = preg_match($pat, $str, $mat) ? date("Y-m-d", strtotime($mat[0])) : "";

DEMO