我有两个字段要填充:每15分钟和每小时调用一次页面。
以下字段是MySql中的DateTime:
$lastAccess15m=$row['lastAccess15m'];
$lastAccessHour=$row['lastAccessHour'];
这些字段是整齐的:
$accessPer15m=$row['accessPer15m'];
$accessPerHour=$row['accessPerHour'];
我想将当前时间与$lastAccess15
进行比较,如果时间距离大于15分钟,请将$lastAccess15
的值设置为当前时间,然后重置$accessPer15m
,否则,增量$accessPer15m
。 $lastAccessHour
和$accessPerHour
也是如此,之后必须将这些值保存到mysql数据库。
如何以分钟/小时为单位获取当前时间与$ accessPer15m之间的时间跨度?
答案 0 :(得分:2)
在SQL中也选择SELECT NOW() as current_timestamp
(以及其他选择)。
在PHP中:
if ((strtotime($row['current_timestamp']) - strtotime($row['lastAccess15m'])) > 900) {
// your code
}
strtotime
将TimeStamp转换为秒,然后您可以将时差与900秒进行比较。 (15分钟)。
答案 1 :(得分:2)
返回自Unix Epoch(1970年1月1日00:00:00 GMT)以来的秒数测量的当前时间。
DATETIME类型用于包含日期和时间部分的值。 MySQL以'YYYY-MM-DD HH:MM:SS'格式检索并显示DATETIME值。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。
要比较它们,您需要转换一个并执行比较:
$phpDateFromMysql = strtotime( $mysqldate );
$mySqlDateFromPHP = date('Y-m-d H:i:s', $phpdate);
最简单的方法是将Mysql值转换为time()并执行比较:
请参阅此working Example!
<?php
// compare if the value from $lastAccess15 is +15min in relation to the current time
$lastAccess15 = '2012-06-01 00:00:00';
$phpDateFromMysql = strtotime( $lastAccess15 );
if ($phpDateFromMysql - $lastAccess15 > 900) {
$lastAccess15 = date('Y-m-d H:i:s', time());
}
echo $lastAccess15;
?>
注意:在if
语句中,您可以执行剩余的操作,如果时间不是&gt,还可以添加else
子句来执行某些操作; 15分钟(就像你提到的增量)。
相关阅读材料:
PHP strtotime函数
PHP date函数
PHP elseif/else if控制结构