Php 时间戳查询不起作用
我的时间戳有问题。我想检查一个时间戳,如果它是在过去或未来。如果是在过去,则应该进行查询 到目前为止,我得到了一个mysql时间戳,它将由Php 时间戳查询不起作用,php,mysql,datetime,variables,date,Php,Mysql,Datetime,Variables,Date,我的时间戳有问题。我想检查一个时间戳,如果它是在过去或未来。如果是在过去,则应该进行查询 到目前为止,我得到了一个mysql时间戳,它将由 $row = $query->fetch_object(); $timestamp = $row->time 其中包括: 2012-04-04 12:06:38 对于进一步的设置,我将使用另外两个变量: $added = $timestamp + 1209600; //what adds 14days (1209600 seconds) t
$row = $query->fetch_object();
$timestamp = $row->time
其中包括:
2012-04-04 12:06:38
对于进一步的设置,我将使用另外两个变量:
$added = $timestamp + 1209600; //what adds 14days (1209600 seconds) to my db-timestamp
$check = $added < time(); //what checks if the 14days have passed or not
所以我的问题是,下面的查询将一直执行,即使在14天应该过去的情况下也是如此。我知道这一点,因为我把时间戳改为1月早些时候的日期。我的问题是:
if ($check === true){
$update = $db->query("UPDATE table SET xy='1' WHERE x='$x'");
}
好像出了什么问题,我不知道那可能是什么 在我看来,您似乎在尝试添加字符串和int 在将常数添加到时间戳之前,也许应该尝试将时间戳转换为和int 您可以在选择时间戳时直接在查询中执行此操作,例如使用
TO_SECONDS()
方法:
我同意barsju的观点。MySQL的结果是DateTime条目的字符串,而不是实际的时间戳。另一个将其保存在PHP中的选项是
strotime($string)代码>将字符串转换为其时间戳。重要的是你在付账前得到一个时间戳
我会在你的例子中这样做:
$timestamp = strtotime($row->time);
我相信还有其他几种方法可以让MySQL返回时间戳。这也可能会给你一些好主意:让我们在$query->fetch_object()之前查看查询。是否使用UNIX\u TIMESTAMP()
函数将时间戳列转换为查询中的整数?如果不是,则$timestamp是一个字符串。确切地说,这是一个转换问题。非常感谢你的帮助。
$timestamp = strtotime($row->time);