MySQL的日期时间到PHP

JM4*_*JM4 3 php mysql datetime strtotime

我已经找到了解决我的"问题"的正确方法,但即使在阅读了mysql页面后,我也不理解它背后的逻辑.

我目前在我的系统中将注册信息存储在我的一个表中的"datetime"格式化字段中(YYYY-MM-DD hh:mm:ss).

当我想在我的一个php页面上显示数据时,只需发布​​确切的字段数据即可显示上述格式.

我会THINK只需使用date("Y-m-d",$row["DATE"])其中$row["DATE"]对应于特定行值将返回所需的格式.

相反,我必须使用:date("Y-m-d", strtotime($row["DATE"])).

为什么是这样?我的$row["DATE"]字段首先不是字符串.我是否应该能够简单地重新排列日期时间字段中存储的数据?这不是重建我的整个表格以适应日期时间的目的吗?

Jim*_* W. 5

MySQL有一个名为date_format的内置函数,您可以使用它来显示日期.

SELECT DATE_FORMAT(date_field, '%Y-%m-%d') as date_field FROM table_name
Run Code Online (Sandbox Code Playgroud)

该手册具有格式列表和以这种方式显示它所需的变量.使用这种方法就没有必要让PHP转换它等等.另外,在PHP方面可以轻松处理MySQL的代码.

编辑

对不起,刚看到您正在寻找解释.

PHP的date函数包含一个UNIX时间戳,MySQL没有使用它.MySQL使用真实的日期格式IE:,YYYY-MM-DD HH:MM:SS如你所知,这是多年后的兼容性.UNIX时间戳具有有限的范围,例如1969年到2037年之间的有效范围,这使得它对于诸如聊天框消息之类的项目的"时间戳"或者预期在这些日期之后不期望的项目非常有用,其中因为MySQL DATETIME不会消失,直到一年变为5位数或世界结束.

有关它的更多信息,请阅读UNIX时间戳上的WIKI .