【问题标题】:Converting TIMESTAMP to unix time in PHP?在 PHP 中将 TIMESTAMP 转换为 unix 时间?
【发布时间】:2011-02-20 11:49:50
【问题描述】:

目前我将时间存储在我的数据库中,如下所示:2010-05-17 19:13:37

但是,我需要比较两次,我觉得如果是像1274119041这样的unix时间戳会更容易做到。 (这两次是不同的)

那么如何将时间戳转换为 unix 时间戳?有没有简单的php函数呢?

【问题讨论】:

    标签: php timestamp unix-timestamp epoch


    【解决方案1】:

    您正在寻找strtotime()

    【讨论】:

    • 谢谢这成功了...但是.. 由于某些原因 MySQL 的 NOW() 与 TIME() 的时间不同。有什么想法吗?
    • 嗯,没关系。我将一个变量设置为 time() 并将其插入数据库而不是 NOW()。还是谢谢
    【解决方案2】:

    你想要strtotime:

    print strtotime('2010-05-17 19:13:37'); // => 1274123617
    

    【讨论】:

      【解决方案3】:

      如果您使用 MySQL 作为数据库,它可以将日期字段作为带有 UNIX_TIMESTAMP 的 unix 时间戳返回:

      SELECT UNIX_TIMESTAMP(my_datetime_field)
      

      你也可以在 PHP 端使用strtotime

      strtotime('2010-05-17 19:13:37');
      

      【讨论】:

        【解决方案4】:

        如果你将时间存储在数据库中,为什么不让数据库也给你它的unix时间戳呢?参见UNIX_TIMESTAMP(date),例如。

        SELECT UNIX_TIMESTAMP(date) ...;
        

        数据库还可以进行日期和时间比较和算术运算。

        【讨论】:

          【解决方案5】:

          获取unix时间戳:

          $unixTimestamp = time();
          

          转换为mysql日期时间格式:

          $mysqlTimestamp = date("Y-m-d H:i:s", $unixTimestamp);
          

          获取一些mysql时间戳:

          $mysqlTimestamp = '2013-01-10 12:13:37';
          

          将其转换为 unixtimestamp:

          $unixTimestamp = strtotime('2010-05-17 19:13:37');
          

          ...将其与一个或一系列时间进行比较,以查看用户是否输入了实际时间:

          if($unixTimestamp > strtotime("1999-12-15") && $unixTimestamp < strtotime("2025-12-15"))
          {...}
          

          Unix 时间戳也更安全。在检查(例如)之前的范围检查之前,您可以执行以下操作来检查 url 传递的变量是否有效:

          if(ctype_digit($_GET["UpdateTimestamp"]))
          {...}
          

          【讨论】:

            猜你喜欢
            • 2015-06-18
            • 2021-07-02
            • 1970-01-01
            • 1970-01-01
            • 2022-12-12
            • 2017-05-13
            • 1970-01-01
            • 2017-03-30
            • 1970-01-01
            相关资源
            最近更新 更多