PHP / MySQL的:从YYYY-MM-DD转换为DD月,YYYY?

问题描述 投票:2回答:8

我有一个MySQL表DATE列表示在这种格式的日期:YYYY-MM-DD。

我想用PHP来从数据库中检索的日期,但它显示是这样的:DD月,YYYY。

从“2009-04-13”到2009' 年4月比如'13。

女巫是做到这一点的最好办法? (我知道如何从DB获得的日期。我只需要知道如何将它转换)

我还需要显示在西班牙月份名称。有一个办法做到这一点,而无需使用strplc或类似的东西每个月翻译?

我是新来编程,请详细说明。

谢谢!!!

php mysql datetime
8个回答
7
投票

请参阅在MySQL中DATE_FORMAT()功能。我想这是为你做到这一点的最好办法。

另外,还可以使这个:

  • 取从DB你的约会
  • 使用strtotime在PHP中,转换为UNIX时间
  • 然后使用date格式化时间。

通过使用日期()你就可以得到个名字在西班牙语当你与setlocale设置您的区域设置PHP。


1
投票

您也可以跳过通过使用你的MySQL UNIX_TIMESTAMP(日期)选择的strtotime()的一部分。但请记住,这是一个MySQL特定的功能,并可能无法在未来便携。


1
投票

执行下面的MySQL查询:

SET lc_time_names = 'es_ES';
SELECT DATE_FORMAT(t.date,'%e de %M, %Y') FROM your_table t ...

随着库MySQLi这将是:

$mysqli->query("SET lc_time_names = 'es_ES'");
$stmt = $mysqli->prepare("SELECT DATE_FORMAT(t.date,'%e de %M, %Y') FROM your_table t ...where id = ?");
...

0
投票

另一种选择没有提到:

SQL:

SELECT UNIX_TIMESTAMP(date) FROM table

PHP:

print date('your format', $timestamp_from_the_db);

0
投票

就个人而言,我喜欢在MySQL使用整数数据类型的数据存储部在UNIX时间戳格式。我离开这个整数的所有的处理,以PHP。保持表和查询尽可能简单,一直使我受益匪浅。主要是,在我写的代码,日期有某种做他们的计算。这是在PHP端,并始终在UNIX时间戳格式全部完成。存储或检索在比UNIX时间戳格式以外的任何其他日期,只是表示错误悄悄在另一个步骤,使查询更少的模块化。它是如何显示之前被格式化的日期最好是留给直到最后一分钟。这只是我的意见,但除非有极端的情况下,你不能提取后处理DB值,日期不应该被格式化SQL端。

一个简单的例子:

<?php

$date = now();
$dueDate = $date + 60*60*24*7; // One week from now

$sqlInsert = "INSERT INTO reports SET `dueDate` = $date";
$resInsert = mysql_query( $sqlInsert );

$sqlSelect = "SELECT `dueDate` FROM reports";
$resSelect = mysql_query( $sqlSelect );
$rowSelect = mysql_fetch_array( $resSelect );

$DB_dueDate = $rowSelect['dueDate'];

$daysUntilDue = ( $DB_dueDate - now() ) / 60*60*24;

$formattedDueDate = date( "j F, Y", $DB_dueDate );

?>

The report is due on <?=$formattedDueDate?>.  That is <?=$daysUntilDue?> from now.

0
投票

最简单的方法是使用strtotime()功能正常化输入到UNIX时间戳。

然后使用date()函数输出你希望的任何格式的日期。请注意,您需要通过UNIX时间戳的第二个参数日期()。


0
投票

这将帮助你,只要你想转换:

$dob ='2009-04-13';
echo date('d M Y', strtotime($dob));

0
投票

$ origDate = “2018年4月20日”;

$ newDate =日期( “d-M-Y”,的strtotime($ origDate));回声$ newDate;

© www.soinside.com 2019 - 2024. All rights reserved.