【问题标题】:UNIX Time stamp and MYSQLUNIX 时间戳和 MYSQL
【发布时间】:2011-08-16 17:07:38
【问题描述】:

我通过 TIMESTAMP 和默认值 UNIX_TIMESTAMP 将进入的日期存储在 mysql 中,但是当我把它带回来时,它是 2011-08-16 11:43:52 并且如果我尝试使用它来设置样式

<?= date('F j, o', $a['time']) ?>

它只是从零开始时间戳,带回 1970 年 12 月 31 日

为什么?我该如何解决?

【问题讨论】:

  • 你能显示你用来恢复它的代码吗?
  • 您确定 $a['time'] 已定义,它不是 $a['unix_time'] 什么的吗?这样就可以了。

标签: php mysql timestamp


【解决方案1】:

使用

SELECT UNIX_TIMESTAMP(field)

UNIX_TIMESTAMP() 用于TIMESTAMP 列时,函数直接返回内部时间戳值,没有隐式的“字符串到Unix 时间戳”转换。

Manual

【讨论】:

    【解决方案2】:

    MySQL 的TIMSTAMP 列存储为YYYY-MM-DD HH-MM-SS,即使您输入UNIX_TIMESTAMP,它仍会以该格式存储。

    所以你可以做的是:

    <?= date('F j, o', strtotime($a['time'])) ?>
    

    演示:http://codepad.org/jBLR2KpH

    【讨论】:

    • 最好直接从mysql中选择它作为时间戳,而不是强制3路mysql内部->时间戳->字符串->php strtotime转换系列。
    【解决方案3】:

    date() 接受数字而不是字符串。无论其内部表示如何,MySQL 总是将您的日期作为字符串返回。试试这个:

    <?php echo date("F j, o", strtotime($a['time']); ?>
    

    【讨论】:

      猜你喜欢
      • 2012-02-18
      • 2010-11-19
      • 1970-01-01
      • 2011-02-08
      • 2013-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      相关资源
      最近更新 更多