我有兴趣在日期字符串和 MySQL 时间戳之间进行比较。但是,我没有看到一个简单的转换。我是否忽略了一些明显的东西?
Thomas Owens
问问题
13859 次
6 回答
14
从时间戳转换为格式:
date('Y-m-d', $timestamp);
从格式化转换为时间戳:
mktime(0, 0, 0, $month, $day, $year, $is_dst);
在存储方面,是否使用 MySQL DATE 格式作为格式化日期由您决定;作为用于存储为 UNIX 时间戳的整数;或者您可以使用 MySQL 的 TIMESTAMP 格式,它将数字时间戳转换为可读格式。检查 MySQL Doc以获取 TIMESTAMP 信息。
于 2008-08-21T17:29:34.113 回答
3
通过使用 MySQL 的函数,您可以避免在PHPstrtotime()
中使用或。getdate()
UNIX_TIMESTAMP()
SELECT UNIX_TIMESTAMP(timestamp) FROM sometable
结果数据将是标准整数 Unix 时间戳,因此您可以直接比较time()
.
于 2008-08-27T15:37:51.057 回答
2
我写了这个小函数来简化这个过程:
/**
* 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;
}
我希望这有帮助
于 2009-03-11T18:38:16.480 回答
0
strtotime()和getdate()是两个可用于从字符串和时间戳中获取日期的函数。但是,没有标准库函数可以在 MySQL 和 PHP 时间戳之间进行转换。
于 2008-08-21T17:30:10.463 回答
0
使用 PHP日期函数。您可能必须使用 mysql 中的UNIX_TIMESTAMP函数将 mysql 时间戳转换为查询中的 Unix 时间戳。
于 2008-08-21T17:30:20.663 回答
0
形式的日期字符串:
YYYY-MM-DD
没有时间与之相关。MySQL 时间戳的格式为:
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';
}
于 2008-08-21T17:57:38.820 回答