我想转换我有格式的数据
$dateToday = date("d-m-Y");
所以 $dateToday 的值是27-12-2012
然后我想用mysql数据类型将它保存到数据库中date。如何保持27-12-2012的值可以以2012-12-27格式存储在 mysql 数据库中?请帮帮我。谢谢
是的,您可以使用strtotime();
$dateToday = date("d-m-Y");
$newDate = date("Y-m-d", strtotime($dateToday));
输出:2012-12-27
然后您可以将数据存储到您的数据库中。
当您必须恢复日期时,您可以像这样反转此操作:
$dateFromDatabase = "2012-12-27";
$reverseDate = date("d-m-Y", strtotime($dateFromDatabase));
输出:27-12-2012
(在第二次约会中将“Ymd”更正为“dmY”)
如果要以这种格式将数据存储在 MYSQL 表中,则需要将列声明为varchar
.
因为datetime
存储日期的格式不同,例如'yyyy-mm-dd hh:mm:ss'
这是它的工作原理:
您必须以正确的 mysql 格式存储数据。它将允许您进行任何排序、聚合、过滤和计算日期。
但是当您需要显示DATE_FORMAT()
数据时,您可以使用 mysql函数将其转换为您希望的任何格式:
SELECT DATE_FORMAT(dt,'%d-%m-%Y') as dtf FROM TABLE
将为您提供dtf
以您的自定义格式格式化的字段
我会告诉你怎么做。为了解释我创建了一个名为它的表testtable1
,它只包含一个名为
col1
DATE 类型的列 表创建查询如下所示
CREATE TABLE `testtable1` (
`col1` DATE NULL DEFAULT NULL
)
以下查询将根据您的需要工作。在第一行中,我声明了一个字符串变量。在第二行中,我将该字符串转换为您需要的日期格式并插入到表中。
set @var1='27-12-2012';
insert into testtable1 values(STR_TO_DATE(@var1, '%d-%m-%Y'))
您还可以尝试使用 mysql 函数将字符串转换为日期,即 STR_TO_TIME 。SQL查询可能是
INSERT INTO foo_table (foo_date)
VALUES (STR_TO_DATE('27-12-2012','%d,%m,%Y'))
输出错误 这不能显示数据库中的日期。这显示 1970/01/01..... $date=Date($year."/".$month."/".$day); $date=Date("Ymd", strtotime($date)); 回声$日期;enter code here
试试这个
$dateToday = date("d-m-Y");
$dateForMysql = date('Y-m-d', $dateToday));