我使用这种格式将日期保存在数据库中。
date("o-m-d H:i:s");
我需要像这种格式的日期。
date("dmo");
我怎么能把它转换成这个。
答案 0 :(得分:1)
使用谷歌,几个例子:
result = mysql_query("SELECT `datetime` FROM `table`");
$row = mysql_fetch_row($result);
$date = date_create($row[0]);
echo date_format($date, 'Y-m-d H:i:s');
#output: 2012-03-24 17:45:12
echo date_format($date, 'd/m/Y H:i:s');
#output: 24/03/2012 17:45:12
echo date_format($date, 'd/m/y');
#output: 24/03/12
echo date_format($date, 'g:i A');
#output: 5:45 PM
echo date_format($date, 'G:ia');
#output: 05:45pm
echo date_format($date, 'g:ia \o\n l jS F Y');
#output: 5:45pm on Saturday 24th March 2012
答案 1 :(得分:1)
当您将日期设置为
时,您可以执行此操作date("o-m-d H:i:s");
它将作为2014-06-13 14:35:43
现在,当您从数据库中选择日期时,您可以使用date_format
将日期更改为任何所需的格式。
mysql> select date_format('2014-06-13 14:35:43','%Y%m%d') as date ;
+----------+
| date |
+----------+
| 20140613 |
+----------+
1 row in set (0.00 sec)
因此,在您的查询中,使用列名称更改硬编码值
select date_format(colname,'%Y%m%d') as date from mytable;
在此处了解有关mysql中日期格式的更多信息http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format
答案 2 :(得分:0)
echo date("dmo", strtotime($mysqldate));
答案 3 :(得分:0)
这是数据库定义的问题,而不是PHP。 MySQL仅支持某些格式的日期。我不认为你可以在原始数据库输入或输出中使用日期(" dmo")。此外,时区总是令人困惑。
我建议您将日期/时间格式存储在unix时间戳(1970-01-01 00:00:00 UTC的秒数)中,并使用date('some format', $timestamp);
转换为您喜欢的任何内容。
数据库字段应为int(11) unsigned not null default 0
。
答案 4 :(得分:0)
select unix_timestamp(datecolumn) as date from yourtable
在php中:
$str = date("dmo", $row["date"]);
这使用unix时间作为数字,它比字符串操作快得多,以格式化数据库中的日期,然后在php中解析它并再次格式化。