php - 时间格式转换错误

时间:2015-09-06 11:59:16

标签: php date

这对许多人来说可能是个小问题,但我无法解决。 我试图转换存储在我的数据库中的日期,并分别提取日,月和年。我一直在尝试使用以下代码进行转换,它返回的描述1970年1月1日的值,用于输入日期值。 $item_date_day = date('d M Y', strtotime($item_date));其中$item_date是db

的值

示例数据库值 9月28日(星期一)

转换后的返回日期: 1970年1月1日

所需产出:2015年9月28日

有什么转换出错的线索?

3 个答案:

答案 0 :(得分:4)

strtotime不接受此格式。实际上,此功能接受的格式是有限的。试试这个:

<?php

    $date = DateTime::createFromFormat('d F y (l)', $item_date);
    $item_date_day = $date->format('d M Y');

答案 1 :(得分:1)

这是一种可能的解决方案,通过这种方式,您可以确保无论最后一项是什么,它总是会返回正确的。

 $date_str = '28 September 15 (Monday)';
 $date_arr = explode(' ', $date_str);
 $date_clean = array_pop($date_arr);
 $date = implode($date_arr);
 echo date('d M Y', strtotime($date));

这将输出

28 Sep 2015

答案 2 :(得分:0)

括号中的日期名称阻止strtotime停止工作。你可以使用正则表达式删除它。例如:

$date = '28 September 15 (Monday)';
$date = preg_replace('/(.*) (\(.*\))/', '$1', $date);
echo date('d M Y', strtotime($date));