我将日期存储在 MySQL 数据库中,如下所示:2012-02-10
当我使用 PHP 输出它们时,我可以使用一个函数来输出它,就像 2012 年 10 月 2 日
我试过了:
$theDate = date_format($row['date'], 'd/m/Y');
echo $theDate;
但它似乎不起作用。任何帮助表示赞赏。
PHP 版本 5.3.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
。
这是一个非常简单的方法
<?php
$theDate = $row['date'];
echo date("m/d/Y", strtotime($theDate));
?>
这里有一些例子:
$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我错过了什么吗?;)