【问题标题】:unix timestamps and phpunix时间戳和php
【发布时间】:2010-05-04 16:14:18
【问题描述】:

我有一个数据库中的 unix 时间戳列表,我想选择从今天开始的那些。

即如果今天是星期二,我想获取今天创建的所有时间戳?可能吗?有strtotime("Today")这样的东西吗?

任何帮助都会很棒

【问题讨论】:

  • 你可以假设它是Mysql,因为没有另外指定;)
  • @TBH:好吧,我做到了。但是有些人因为这个假设而拿走了代表点数。
  • 对不起,我弄错了。已经修好了。

标签: php mysql strtotime timestamp


【解决方案1】:

您可以使用mktime() 生成当天开始的时间戳,然后查找时间戳大于该时间戳的数据库条目。

【讨论】:

  • 另外,您可以使用getdate() 作为mktime() 的信息源,将值设置为0。 (我唯一的假设是您使用 UTC 值并且仅出于显示目的进行时区转换。)
【解决方案2】:
$start = strtotime(date('Y-m-d 00:00:00')); // Current date, at midnight
$end = strtotime(date('Y-m-d 23:59:59')); // Current date, at 11:59:59 PM

然后,您可以选择时间戳在上述两个时间戳之间的位置:

"SELECT FROM `foo` WHERE `timestamp` BETWEEN '{$start}' and '{$end}'"

【讨论】:

    【解决方案3】:

    您可以使用FROM_UNIXTIME() 在 SQL 中将 unix 时间戳转换为 sql 日期,然后将其与 NOW() 进行比较

    SELECT * FROM `tablename` WHERE DATE(FROM_UNIXTIME(`dateFld`)) = DATE(NOW());
    

    【讨论】:

    • FROM_UNIXTIME() 是 MySQL 独有的函数。 sea_1987 没有说他有什么 DBMS。
    • 公平地说,你知道他们对假设的看法!
    • @symcbean 是绝对正确的,但是当语言是 PHP 时,mySQL 在统计上是一个很好的猜测。
    【解决方案4】:

    检查 DAY(NOW()) 和 MONTH(NOW()) 和 YEAR(NOW()) 是否等于 DAY(timestamp) 和 MONTH(timestamp) 和 YEAR(timestamp) 的适当值。

    select timestamp from table where DAY(NOW()) = DAY(timestamp) AND MONTH(NOW()) = MONTH(timestamp) AND YEAR(NOW()) = YEAR(timestamp)
    

    【讨论】:

    • 这行不通 - 原始帖子指出日期存储为 unix 时间戳。
    【解决方案5】:

    如果您使用的是 mysql:

    SELECT * FROM table WHERE DATE(NOW()) = DATE(FROM_UNIXTIME(timestampcol))
    

    【讨论】:

      【解决方案6】:

      FROM_UNIXTIME(somefield) 可以与 CURDATE() 进行比较,假设您使用的是 MySQL

      SELECT * FROM mytable WHERE FROM_UNIXTIME(datefield,'%Y-%m-%d') = CURDATE();
      

      预计到达时间: 好的,当这个答案被标记时,我受到了质疑。所以我去做了几个测试。鉴于 MySQL,它绝对有效。那么为什么要降级呢?

      考虑这个测试,它为表中的每一行输出 2 个相同的字段:

      SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(CURDATE()),'%Y-%m-%d')  a , CURDATE() b
        FROM tablewithsomerows 
        WHERE FROM_UNIXTIME(UNIX_TIMESTAMP(CURDATE()),'%Y-%m-%d') = CURDATE();
      

      【讨论】:

        猜你喜欢
        • 2012-08-24
        • 2019-09-02
        • 2013-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多