1

我的日期格式为 d/m/y。如何将它们插入 DATETIME 列?

4

6 回答 6

1

您需要使用 php 的date()函数以及strtotime()将日期转换为您想要的任何格式。

MySQL 数据库YY-MM-DD以 datetime 数据类型的格式存储日期,所以如果你有一个日期

$date = '26/05/2012';

您可以使用date()strtotime()转换它

$formatDate = date('Y-m-d', strtotime('26/05/2012'));

这将转换日期26/05/20122012-05-26然后可以将其插入数据库。

如果您使用时间戳数据类型将日期存储在数据库中,那么您只需将当前日期转换为 unix 时间戳并存储在数据库中即可。

$date = strtotime('26/05/2012');
//this will convert the date to unix timestamp

更新:

正如@wallyk 所指出的(谢谢), strtotime() 不处理dd/mm/yy格式。解决方法是/-m 下面的代码替换斜杠应该适合你。

date('Y-m-d', strtotime(str_replace('/', '-', '26/05/2012')));
于 2012-05-26T06:38:12.253 回答
1

使用 MySQL 的STR_TO_DATE()功能:

INSERT INTO my_table VALUES (STR_TO_DATE('26/5/12', '%e/%c/%y'))
于 2012-05-26T06:39:10.687 回答
0

试试这个:

$mysqldate = date("m/d/y g:i A", $datetime);
于 2012-05-26T06:36:25.180 回答
0

$date = date('d/m/Y');

$date = strtotime($date); //unix时间戳格式

于 2012-05-26T06:39:31.810 回答
-1

基本上美国日期格式是MM/DD/YYYY并且您正在提供DD/MM/YYYY,这就是为什么startotime()在此输入上返回空值;我更喜欢你必须遵循美国的标准日期格式,(MM/DD/YYYY)因为如果你使用提到的日期格式,也会在不同的地方产生更多的问题..

如果你检查这个

echo date('Y-m-d',  strtotime('05/26/2012') );

它工作正常..

于 2012-05-28T11:52:56.067 回答
-2

您可以将 DATE 列更改为字符串列,并在需要时插入数据 2 检查日期是否正确,您可以使用正则表达式来执行此操作

于 2012-05-26T06:38:52.640 回答