【问题标题】:Convert Date Format from jS \of F Y D to Ymd in PHP在 PHP 中将日期格式从 jS \of F Y D 转换为 Ymd
【发布时间】:2014-08-31 16:04:56
【问题描述】:

我有以下格式的日期

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

【问题讨论】:

    标签: php datetime


    【解决方案1】:
    <?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 日不是星期日,那是星期四,如果您的数据集中的日期名称不正确,您应该删除它们。

    【讨论】:

    • 没错,8 月 1 日不是星期日。很好的收获:)
    【解决方案2】:

    您应该将时间拆分为日月年分秒(您需要将月份转换为数字),然后您应该能够使用 mktime:

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

    【讨论】:

    • 大声笑,这是唯一的方法吗?从jS \of F Y D 格式拆分日期将是另一个令人头疼的问题。 :(
    猜你喜欢
    • 2023-03-08
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 2019-08-16
    • 1970-01-01
    相关资源
    最近更新 更多