用PHP进行网站开发时,在用Mysql设计数据库时时间字段一般是必不可少的,由于Mysql日期函数输出的日期格式与PHP日期函数之间的日期格式兼容性不够,这就需要根据网站实际情况使用Mysql或PHP日期转换函数进行日期格式的转换。我们建议,当涉及到大量日期计算时使用UNIX时间戳格式进行日期计算或保存是非常好的开发习惯,UNIX时间戳有利于PHP与Msyq之间进行日期时间的格式转换,下面我们就介绍一些常用的Mysql日期函数,以方便大家在PHP开发中进行日期转换。

  Mysql日期格式函数DATE_FORMAT

  与PHP日期函数date功能类似,在Mysql数据库中也有日期格式初始化函数DATE_FORMAT,主要用来将Mysql数据库的日期时间以用户需要的日期格式进行转换输出。只是日期格式代码不同。在Mysql数据库中日期默认显示格式为YYYY-MM-DD,如果需要显示其他日期格式,就需要使用Mysql日期函数DATE_FORMAT对日期进行格式化。Mysql日期函数DATE_FORMAT的格式化代码请参考Mysql官网日期函数DATE_FORMAT介绍。

  在Mysql数据库中,Mysql日期函数DATE_FORMAT的常用方法

 SELECT  DATE_FORMAT(date_col,”日期格式化字符串”) FROM tablename;
  Mysql UNIX时间戳函数UNIX_TIMESTAMP/FROM_UNIXTIME

  为什么需要介绍这两个Mysql UNIX时间戳函数呢?DATE_FORMAT函数只是Mysql日期格式化函数,当需要PHP日期函数与Mysql日期函数之间需要格式转化时,必须有一个沟通的桥梁,而UNIX时间戳格式的日期时间正好是两者之间的桥梁,Mysql UNIX时间戳函数UNIX_TIMESTAMP主要用来将当前时间或指定的日期时间值转换为UNIX时间戳格式。
UNIX_TIMESTAMP(date)

如果没有参数调用,返回一个Unix时间戳记(从’1970-01-01 00:00:00’GMT开始的秒数)。如果UNIX_TIMESTAMP()用一个date参数被调用,它返回从’1970-01-01 00:00:00′ GMT开始的秒数值。date可以是一个DATE字符串、一个DATETIME字符串、一个TIMESTAMP或以YYMMDD或YYYYMMDD格式的 本地时间的一个数字。
mysql> select UNIX_TIMESTAMP();
         -> 882226357
mysql> select UNIX_TIMESTAMP(‘1997-10-04 22:23:00’);
         -> 875996580

当UNIX_TIMESTAMP被用于一个TIMESTAMP列,函数将直接接受值,没有隐含的“string-to-unix-timestamp”变换。
FROM_UNIXTIME(unix_timestamp)

以’YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS格式返回unix_timestamp参数所表示的值,取决于函数是在一个字符串还是或数字上下文中被使用。
mysql> select FROM_UNIXTIME(875996580);
         -> ‘1997-10-04 22:23:00’
mysql> select FROM_UNIXTIME(875996580) + 0;
         -> 19971004222300

  Mysql数据库中使用UNIX时间戳日期格式的场合与好处

  当你进行PHP开发时,如果涉及到的前后台日期计算任务比较多,我们还是推荐在Mysql数据库设计时,日期时间格式还是使用UNIX时间戳格式,UNIX时间戳日期格式的好处是通用性强,便于不同格式的日期函数间相互转化,同时日期计算方面效率也更高。如果PHP开发中日期更多是用来显示的,那使用Mysql固有的日期显示格式YYYY-MM-DD显得更直观。当然在整个Mysql数据库设计中,日期时间字段的类型还是需要做到统筹规划,切勿格式不同,这会给网站开发和后期维护带来很大的麻烦。

  至此,Mysql日期函数中关于日期时间格式转换函数的介绍就完了,对于PHP入门学习的朋友来说,只要灵活掌握Mysql日期函数DATE_FORMAT、UNIX_TIMESTAMP、FROM_UNIXTIME的基础知识,PHP网站开发中日期处理基本就没什么问题了。