将日期字符串 (Y-m-d) 转换为 “Mar 2nd” php/mysql


converting date string (Y-m-d) into "Mar 2nd" php/mysql

我正在使用数组 $row[dt]从 mySQL 表中停用 Y-m-d 形式的日期字符串(例如 2010-12-03);

echo $row["dt"]; // in a while loop

我想将存储的字符串输出为"Mar 2nd"

我已经尝试了strtotime()date( "m d", $row['dt'] )但它们不起作用..例如,后者只输出"Dec 31"

这能做到吗? 谢谢

我相信

这就是您正在寻找的答案。之所以j而不是d,是因为海报要求3月2日。使用 d 将输出 Mar 02nd

echo date("M jS", strtotime($row['dt']));

编辑:M而不是m。

看起来 PHP 没有对序数足够的内置支持,所以你必须手动完成。

在代码中包含以下函数:

function suffix($number) {
    $last = substr($number, -1, 1);
    switch($last) {
        case "1": return "st";
        case "2": return "nd";
        case "3": return "rd";
        default: return "th";
    }
}

。那么你的PHP将是:

echo date( "m d", $row['dt'] ) . suffix( date( "d", $row['dt'] ) );

你可以像这样转换,

echo date("M jS", strtotime($row['dt']));

在这里,您可以获得所有PHP日期和时间格式。

PHP 日期和时间格式