这对许多人来说可能是个小问题,但我无法解决。
我试图转换存储在我的数据库中的日期,并分别提取日,月和年。我一直在尝试使用以下代码进行转换,它返回的描述1970年1月1日的值,用于输入日期值。
$item_date_day = date('d M Y', strtotime($item_date));
其中$item_date
是db
示例数据库值 9月28日(星期一)
转换后的返回日期: 1970年1月1日
所需产出:2015年9月28日
有什么转换出错的线索?
答案 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));