如果我有一个格式为YYYY-DD-MM的PHP字符串和MySQL中的时间戳,有没有一种好方法可以在它们之间进行转换?
我对比较日期字符串和MySQL时间戳感兴趣。然而,我并没有看到一个简单的转换。我是否忽略了一些显而易见的东西?从时间戳转换为格式:如果我有一个格式为YYYY-DD-MM的PHP字符串和MySQL中的时间戳,有没有一种好方法可以在它们之间进行转换?,php,mysql,time,timestamp,date,Php,Mysql,Time,Timestamp,Date,我对比较日期字符串和MySQL时间戳感兴趣。然而,我并没有看到一个简单的转换。我是否忽略了一些显而易见的东西?从时间戳转换为格式: date('Y-m-d', $timestamp); 从格式化转换为时间戳: mktime(0, 0, 0, $month, $day, $year, $is_dst); 有关更多文档,请参阅和 在存储方面,是否使用MySQL日期格式作为格式化日期取决于您;作为整数存储为UNIX时间戳;或者可以使用MySQL的时间戳格式,将数字时间戳转换为可读格式。用于时间戳信
date('Y-m-d', $timestamp);
从格式化转换为时间戳:
mktime(0, 0, 0, $month, $day, $year, $is_dst);
有关更多文档,请参阅和
在存储方面,是否使用MySQL日期格式作为格式化日期取决于您;作为整数存储为UNIX时间戳;或者可以使用MySQL的时间戳格式,将数字时间戳转换为可读格式。用于时间戳信息。和是两个函数,可用于从字符串和时间戳获取日期。但是,没有一个标准的库函数可以在MySQL和PHP时间戳之间进行转换。使用PHP函数。您可能需要在查询中使用mysql中的函数将mysql时间戳转换为Unix时间戳。以下格式的日期字符串:
YYYY-MM-DD
YYYY-MM-DD HH:mm:ss
没有与之相关的时间。MySQL时间戳的形式如下:
YYYY-MM-DD
YYYY-MM-DD HH:mm:ss
要比较两者,您必须向日期字符串添加时间,例如午夜
$datetime = '2008-08-21'.' 00:00:00';
然后使用函数比较它们之间的epoc时间
if (strtotime($datetime) > strtotime($timestamp)) {
echo 'Datetime later';
} else {
echo 'Timestamp equal or greater';
}
通过使用MySQL的
UNIX\u TIMESTAMP()
函数,您可以避免在PHP中使用strottime()
或getdate()
SELECT UNIX_TIMESTAMP(timestamp) FROM sometable
生成的数据将是一个标准的整数Unix时间戳,因此您可以直接比较
time()
我编写了这个小函数来简化过程:
/**
* Convert MySQL datetime to PHP time
*/
function convert_datetime($datetime) {
//example: 2008-02-07 12:19:32
$values = split(" ", $datetime);
$dates = split("-", $values[0]);
$times = split(":", $values[1]);
$newdate = mktime($times[0], $times[1], $times[2], $dates[1], $dates[2], $dates[0]);
return $newdate;
}
我希望这有帮助只需调用一次strotime就可以替代整个函数。为什么要重新发明轮子?我的错是,我建造这个轮子是因为我在过去遇到了问题(我现在想不起来这个原因)。