php - 通过php比较日期

标签 php mysql date

<分区>

我想比较两个日期,第一个是我当前的日期,第二个是数据库中的日期。

当我看到它们时,它们看起来完全相同,但 PHP 给了我另一个结果。我尝试使用 strcmp 等函数进行比较。我简化了代码,以便您更容易理解。

<?php
$users_day = "20".date("y-m-d");
$looper = 0 ;
$all_users_selection = mysql_query("SELECT * FROM user");
while($user_rows = mysql_fetch_array($all_users_selection) )
{
    if($user_rows['user_lastseen'] != NULL)
    {
        //Getting user lastseen day and hour
        $db_user_date[$looper] = substr(($user_rows['user_lastseen']) ,0 , 10);
        $db_user_curr[$looper] = $user_rows['username'];
        //Comparing day then hour
        if (strcmp($users_day,$db_user_date[$looper]) != 0)
        {
            //Set offline
            $current_user_update = mysql_query("UPDATE user SET user_status = 'offline' WHERE username = '$db_user_curr[$looper]'");
        }
        $looper++;
  }
  ?>

当我尝试测试变量时,例如 echo $users_day;,它会给我 2016-12-24(我当前的日期)。

此外,当我测试数据库中的日期时,它会给我一个相同类型的日期,例如我添加的:

echo $db_user_date[$looper]; 

在我的 while 循环 中,在某些情况下日期是相同的 2016-12-24 当我测试 echo strcmp($users_day,$db_user_date[$looper]); 它给了我 -10,这意味着它们 100% 不同,但它们不是!

有什么想法吗?

最佳答案

将您的日期转换为时间,这是一个数值,然后比较它们。

$current = strtotime($users_day)
$db_date = strtotime($db_user_date[$looper])

if($current > $db_date)
{
    ...
}

关于php - 通过php比较日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41308585/

相关文章:

php - 如何解决 PHP date() NULL 值 1969?

php - 获取日期符合特定模式的行。 MySQL

php - 用户名的 jQuery 正则表达式

php - 找不到 .bowerrc 文件

php - 如何获取动态下拉列表的搜索结果计数?

mysql - SQL集体更新表字段

php - DB 中存储的时间减去 2 周

php - 将 session 数组中的购物车项目添加到 mysql 数据库

php - Phalcon php 路由器 notFound 不工作

MySQL Workbench TEXT() 列参数