在PHP中将日期格式从jS \ F Y D转换为Ymd

时间:2014-08-31 07:54:22

标签: php datetime

我的日期格式如下

31st of August 2014 Sun使用$cursor->format("jS \of F Y D");,但如何将现有时间转换为Ymd,以便输出为20140831

我尝试过echo date("Y-m-d", strtotime(31st of August 2014 Sun));

并且我不知道为什么输出显示为1970年1月1日这很奇怪。

我也试过

echo contime('1st of August 2013 Sun');

function contime($gettime) {
$fetch_date = strtotime($gettime);
$date = new DateTime('');
return $date->format('Ymd');
}

但这是今天的回归。

还尝试了Convert one date format into another in PHP

$old_date = date('1st of August 2013 Sun');  //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);   
echo $new_date;

但是它的打印1970-01-01 00:00:00

2 个答案:

答案 0 :(得分:3)

<?php

$date = DateTime::createFromFormat("jS \of F Y D", '31st of August 2014 Sun');
echo $date->format('Ymd');

但请注意,字符串必须正确,在您的示例中:

'1st of August 2013 Sun'

2013年8月1日不是星期日,它是星期日,如果数据集中的天数名称不正确,则应删除它们。

答案 1 :(得分:1)

您应该将时间分为日月分钟和秒(您需要将月份变为数字),然后您应该可以使用mktime:

 echo date("Y-m-d", mktime($hour, $minute, $second, $month, $day, $year));