转换日期格式

时间:2010-06-09 08:50:16

标签: php

我有一个moodle安装,其中mdl_user表中有一个名为firstaccess的列,其类型为bigint(10),并包含以下格式的日期 1266839570

我正在编写一个根据日期过滤器访问用户的查询。对于例如我想检查哪些用户firstaccess大于'2010-04-12'。我怎样才能转换日期?这两种日期格式不同。我认为firstaccess是unix时间戳。我应该将'2010-04-12'更改为unix时间戳,还是有办法将firstaccess(即1266839570)转换为yyyy-mm-dd格式。

请帮我解决这个问题。

由于

5 个答案:

答案 0 :(得分:1)

您可以使用mktime()功能在php中创建一个unix时间戳,然后将其放入查询中。
MySQL有一个date_format()函数,可以根据你的喜好格式化日期,但我不确定它是否适用于bigint。你最好使用mktime

答案 1 :(得分:1)

date()和mktime()是来自unix时间戳和后面的Concert的函数 您可以用任何一种方式转换日期

答案 2 :(得分:1)

我相信你可以使用时间戳来编写查询。例如。

SELECT * FROM mytable WHERE firstaccess >= TIMESTAMP('2010-04-12')

http://dev.mysql.com/doc/refman/5.0/en/timestamp.html

答案 3 :(得分:1)

我不知道表单中的日期是什么形式,但您可以使用mktime轻松将其转换为时间戳(如果已经不是一个)。例如:

$mytimestamp=mktime(0,0,0, $month, $day, $year);

然后将其添加到您的查询中:

$myQuery= "SELECT whatever FROM sometable WHERE " . $mytimestamp . ">=firstaccess";

答案 4 :(得分:1)

像Paul Peelen一样,我的答案是MySQL查询。不过,我会采用另一种方式,将第一次访问转换为日期。 使用问题中的日期信息:

SELECT * FROM mytable WHERE DATE_FORMAT(FROM_UNIXTIME(firstaccess), '%Y-%m-%d') > '2010-04-12';