2

我想转换我有格式的数据

$dateToday = date("d-m-Y");

所以 $dateToday 的值是27-12-2012

然后我想用mysql数据类型将它保存到数据库中date。如何保持27-12-2012的值可以以2012-12-27格式存储在 mysql 数据库中?请帮帮我。谢谢

4

7 回答 7

3

是的,您可以使用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”)

于 2012-12-27T14:26:20.477 回答
0

如果要以这种格式将数据存储在 MYSQL 表中,则需要将列声明为varchar.

因为datetime 存储日期的格式不同,例如'yyyy-mm-dd hh:mm:ss'

于 2012-12-27T14:19:33.850 回答
0

这是它的工作原理:

您必须以正确的 mysql 格式存储数据。它将允许您进行任何排序、聚合、过滤和计算日期。

但是当您需要显示DATE_FORMAT()数据时,您可以使用 mysql函数将其转换为您希望的任何格式:

SELECT DATE_FORMAT(dt,'%d-%m-%Y') as dtf FROM TABLE

将为您提供dtf以您的自定义格式格式化的字段

于 2012-12-27T14:29:47.373 回答
0

我会告诉你怎么做。为了解释我创建了一个名为它的表testtable1,它只包含一个名为 col1DATE 类型的列 表创建查询如下所示

CREATE TABLE `testtable1` (
    `col1` DATE NULL DEFAULT NULL
)

以下查询将根据您的需要工作。在第一行中,我声明了一个字符串变量。在第二行中,我将该字符串转换为您需要的日期格式并插入到表中。

set @var1='27-12-2012';
insert into testtable1 values(STR_TO_DATE(@var1, '%d-%m-%Y'))
于 2012-12-27T14:37:55.110 回答
0

您还可以尝试使用 mysql 函数将字符串转换为日期,即 STR_TO_TIME 。SQL查询可能是

INSERT INTO foo_table (foo_date)
VALUES (STR_TO_DATE('27-12-2012','%d,%m,%Y'))
于 2012-12-27T14:42:17.140 回答
0

输出错误 这不能显示数据库中的日期。这显示 1970/01/01..... $date=Date($year."/".$month."/".$day); $date=Date("Ymd", strtotime($date)); 回声$日期;enter code here

于 2013-12-24T09:37:28.767 回答
-1

试试这个

$dateToday = date("d-m-Y");
$dateForMysql = date('Y-m-d', $dateToday));
于 2012-12-27T14:24:55.657 回答