【问题标题】:Format a MySQL date in PHP在 PHP 中格式化 MySQL 日期
【发布时间】:2011-09-09 05:28:43
【问题描述】:

我的表中有一个datetime 类型的列。我想以特定格式显示它们,所以我尝试使用它:

echo date( 'm/d/Y - g:h A', strtotime($dateFromMySQL) );

...这完全把一切都搞砸了。


如果我只是做echo $dateFromMySQL;(循环),我会得到:

2011-09-10 01:03:04
2011-09-10 00:52:47
2011-09-10 00:40:26
等等……

...这是正确的。


如果我这样做echo strtotime($dateFromMySQL);,我会得到:

1315630984
1315630367
1315629626
等等……

...这可能是正确的。我不知道。


但是,当我执行echo date( 'm/d/Y - g:h:s A', strtotime($dateFromMySQL) ); 时,我得到了这个:

2011 年 9 月 10 日 - 凌晨 1:01:04
2011 年 9 月 10 日 - 上午 12:12:47
2011 年 9 月 10 日 - 上午 12:12:26
等等……

...这显然是错误的。


那么,我的问题是,我做错了什么?
我是否以某种方式没有正确使用strtotimedate

【问题讨论】:

  • 尝试 createfromformat 而不是 strtotime 并手动输入输入日期格式。从 php 手册中,“m/d/y 或 d-m-y 格式的日期通过查看各个组件之间的分隔符来消除歧义:如果分隔符是斜线 (/),则假定为美式 m/d/y;而如果分隔符是破折号 (-) 或点 (.),则假定为欧洲 d-m-y 格式。"
  • 请务必查看文档:php.net/manual/en/function.date.php

标签: php mysql datetime


【解决方案1】:

应该是 m/d/Y - g:i:s A

【讨论】:

    【解决方案2】:

    我想你正在寻找m/d/Y - g:i:s A

    h - 小时
    i - 分钟

    【讨论】:

      【解决方案3】:

      您使用了错误的日期格式h

      正确的行为

      date( 'm/d/Y - g:i:s A' ...
      

      PHP 日期函数中的h & i 是什么?

      h = 12 小时格式,带前导零的小时
      i = 带前导零的分钟

      【讨论】:

        【解决方案4】:

        是的。您询问 12 小时格式的小时,然后询问 24 小时格式的小时。

        使用'g:i:s' 代替'g:h:s'

        此外,我在尝试时收到警告:

        PHP 警告:strtotime(): 依赖系统的 时区设置。您需要使用 date.timezone 设置 或 date_default_timezone_set() 函数。如果您使用任何 这些方法,您仍然收到此警告,您很可能 时区标识符拼写错误。我们选择了“欧洲/柏林” 'CEST/2.0/DST' 代替在第 1 行的命令行代码中

        所以这可能是 - 或成为 - 一个额外的问题。

        【讨论】:

        • 谢谢。我总是在脚本开头使用date_default_timezone_set()
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-24
        • 2023-03-29
        • 1970-01-01
        • 2013-06-25
        • 1970-01-01
        相关资源
        最近更新 更多