是否有一种简单的方法可以将一种日期格式转换为PHP中的另一种日期格式?我有这个:$old_date = date('y-m-d-h-i-s'); // works$middle = strtotime($old_date); // returns bool(false)$new_date = date('Y-m-d H:i:s', $middle); // returns 1970-01-01 00:00:00但我当然希望它能够恢复当前的日期,而不是破解那天。我究竟做错了什么?
4 回答
![?](http://img1.sycdn.imooc.com/5333a207000118af02200220-100-100.jpg)
宝慕林4294392
TA贡献2021条经验 获得超8个赞
第二个参数date()
需要是一个合适的时间戳(1970年1月1日以来的秒数)。您正在传递一个字符串,date()无法识别。
您可以使用strtotime()将日期字符串转换为时间戳。但是,即使是strtotime()也无法识别y-m-d-h-i-s
格式。
PHP 5.3及以上
使用DateTime::createFromFormat
。它允许您指定一个精确的掩码 - 使用date()
语法 - 来解析传入的字符串日期。
PHP 5.2及更低版本
您必须手动解析元素(年,月,日,小时,分钟,秒)substr()
并将结果交给mktime(),这将构建一个时间戳。
但那是很多工作!我建议使用strftime()可以理解的不同格式。strftime()理解 输入的任何日期the next time joe will slip on the ice
。例如,这有效:
$old_date = date('l, F d y h:i:s'); // returns Saturday, January 30 10 02:06:34
$old_date_timestamp = strtotime($old_date);
$new_date = date('Y-m-d H:i:s', $old_date_timestamp);
![?](http://img1.sycdn.imooc.com/54586431000103bb02200220-100-100.jpg)
牛魔王的故事
TA贡献1830条经验 获得超3个赞
试试这个:
$old_date = date('y-m-d-h-i-s');$new_date = date('Y-m-d H:i:s', strtotime($old_date));
添加回答
举报
0/150
提交
取消