0

我将日期存储在 MySQL 数据库中,如下所示:2012-02-10

当我使用 PHP 输出它们时,我可以使用一个函数来输出它,就像 2012 年 10 月 2 日

我试过了:

$theDate = date_format($row['date'], 'd/m/Y');
echo $theDate;

但它似乎不起作用。任何帮助表示赞赏。

PHP 版本 5.3.3

4

4 回答 4

3

使用前需要date_create()先使用date_format()。这是因为date_format()需要一个DateTime对象作为第一个参数。

$date = date_create($row['date']);
echo date_format($date, 'd/m/Y');

做同样事情的另一种方法:

$dt = new DateTime('2012-02-10');
echo $dt->format('d/m/Y');

对于那里的 PHP 5.4 用户,它可以简化为:

echo (new DateTime('2012-02-10'))->format('d/m/Y');

编辑

要评论提供的替代解决方案,它们可以简化为:

echo date('d/m/Y', strtotime($row['date']));

请记住,他们考虑夏令时或时区DateTime

于 2013-10-02T20:50:32.570 回答
1

旧方法(非 OOP),

$t = strtotime('2012-02-10');
echo date('d/m/Y', $t);

要检查的功能:strtotimedate

于 2013-10-02T20:53:54.573 回答
1

这是一个非常简单的方法

<?php
    $theDate = $row['date'];
    echo date("m/d/Y", strtotime($theDate));
?>
于 2013-10-02T20:53:58.943 回答
0

这里有一些例子:

$input = '2012-02-10';

// datetime (object oriented style)
$dt = new DateTime($input);
echo $dt->format('d/m/Y') . "\n";

// datetime (procedural style)
$dt = date_create($input);
echo date_format($dt, 'd/m/Y') . "\n";

// strtotime
$m = strtotime($input);
echo date('d/m/Y', $m) . "\n";

// substr
echo substr($input,8,2) . "/" . substr($input,5,2) . "/" . substr($input,0,4) . "\n";

// explode
$m = explode('-', $input);
echo "$m[2]/$m[1]/$m[0]" . "\n";

// preg_match
preg_match('~^(\d+)-(\d+)-(\d+)$~', $input, $m);
echo "$m[3]/$m[2]/$m[1]" . "\n";

// sscanf
$m = sscanf($input, '%d-%d-%d');
echo "$m[2]/$m[1]/$m[0]" . "\n";

ps我错过了什么吗?;)

于 2013-10-02T21:32:44.323 回答