【问题标题】:php date formatting with MySQL SHOW TABLE STATUS使用 MySQL SHOW TABLE STATUS 格式化 php 日期
【发布时间】:2010-03-31 18:13:23
【问题描述】:

可能缺少一些简单的东西:

<?php
$con=mysql_connect('localhost','xxx','xxx');

$db=mysql_select_db('xxx');

$sql = mysql_query("SHOW TABLE STATUS WHERE `name`=\"my_table\"");

$foo=mysql_fetch_array($sql);

return $foo['Update_time'];

// returns 2010-03-31 16:51:06
?>

我如何格式化这个。我尝试使用

date('l jS F Y @ H:i:s', $foo['Update_time']);

但这会返回:

1970 年 1 月 1 日星期四 @ 01:33:30

大概因为 date() 需要一个时间戳。

谢谢..我确定这很明显,但我的大脑一片空白

【问题讨论】:

    标签: php mysql date format


    【解决方案1】:

    date 函数需要 UNIX Timestamp 作为其第二个参数,而不是包含日期的字符串。

    这意味着您必须将该字符串转换为时间戳——这可以使用strtotime 函数来完成:

    $ts = strtotime($foo['Update_time']);
    echo date('l jS F Y @ H:i:s', $ts);
    


    注 1:YYYY-MM-DD HH-MM-SS 格式很容易被 strtotime 理解;在处理来自 MySQL 的日期时,这通常很有帮助。

    注意 2:使用 datestrtotime,它们适用于时间戳(表示为 32 位整数,计算自 1970-01-01 以来的秒数),您将被限制为日期1970 年至 2038 年之间;如果您需要使用超出该范围的日期,则必须使用 DateTime class

    【讨论】:

      【解决方案2】:

      这应该有效:

      date('l jS F Y @ H:i:s', strtotime($foo['Update_time']));
      

      strtotime() 将获取日期字符串并将其转换为时间戳,然后您可以将其与date() 一起使用。

      【讨论】:

        【解决方案3】:

        你需要使用strtotime函数:

        date('l jS F Y @ H:i:s', strtotime($foo['Update_time']));
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-12
          • 1970-01-01
          • 2023-03-24
          • 2023-03-29
          • 1970-01-01
          • 2013-06-25
          相关资源
          最近更新 更多