【问题标题】:PHP date time to Unix time StampPHP日期时间到Unix时间戳
【发布时间】:2012-07-18 15:12:27
【问题描述】:

如何在 php.ini 中将字符串“M-d-Y::H:i:s”转换为 unix 时间戳。我刚刚意识到操作日期和时间一定是任何编程语言中最耗时的实体。

小问题:为什么你认为没有任何通用的日期时间格式。为什么相同的数据会有如此多的变化?啊啊啊。

【问题讨论】:

    标签: php datetime


    【解决方案1】:

    OOP 方式(需要 PHP >= 5.3.0):

    $dt = DateTime::createFromFormat("M-d-Y::H:i:s", $input);
    $ts = $dt->getTimestamp();
    

    你当然应该检查createFromFormat的返回值(如果发生错误,它是false),但你也应该一定检查DateTime::getLastErrors();否则你可能会感到惊讶,例如您输入的日期为“Jan 32”。请参阅我的回答 here 了解更多信息。

    【讨论】:

    • 致命错误:在 C:\my 项目路径中的非对象上调用成员函数 getTimestamp()。我错过了什么吗? $input 实际上是格式为“M-d-Y::H:i:s”的字符串,我使用的是 php 5.4.4
    • @srijan:你没有检查返回值(显然是false)或getLastErrors()(它会告诉你出了什么问题)。我建议你这样做是有原因的。
    • 好的,我在 getLastErrors() 中收到未定义的偏移量通知。我的日期时间字符串实际上是“12-20-1996::20:00:00”。我的格式有什么问题吗?
    • @Jon 请找出问题中的缺陷并编辑您的答案以使用正确的格式:m-d-Y::H:i:s,以免未来的 SO 读者感到困惑。
    • @mickmackusa 不确定是否值得?毕竟,无论如何,读者都必须调整格式字符串(:: 部分不是我见过的任何标准,而且我见过很多)。无论如何,问题/答案对就目前而言还不错,如果您需要不合理的话,是否可以点击文档查看格式说明符?
    【解决方案2】:

    我有这个问题服务不可用(带有消息)ResponseText:错误:在布尔值上调用成员函数 getTimestamp() 如何解决这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-02
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 2019-06-16
      • 2011-06-20
      相关资源
      最近更新 更多