【问题标题】:Converting this date format to Unix Time in PHP在 PHP 中将此日期格式转换为 Unix 时间
【发布时间】:2012-03-29 00:04:44
【问题描述】:

我正在尝试使用 PHP 将以下格式的时间格式转换为 unix 时间戳

j n Y H:i:s

我正在尝试找到一种方法来转换为 unix 时间戳,以便在 SQL 数据库中使用它。我需要转换的日期示例:

2012 年 3 月 28 日 16:37:34

我已经尝试过在 stackoverflow 上找到的名为“strptime”和“mktime”的函数,但没有成功——我不太确定我在用它们做什么。如果这是这里的答案,有人可以解释如何使用它们吗?我试图理解 PHP 文档,但我就是不明白。

我正在阅读的帖子在这里:PHP date format converting

【问题讨论】:

    标签: php timestamp


    【解决方案1】:

    echo strtotime('28 Mar 12 16:37:34'); //1332945454

    http://php.net/manual/en/function.strtotime.php

    【讨论】:

    • 谢谢!我知道一定有一些我想念的简单的东西:)
    • @kirgy:在这种情况下,输出值可能与1332945454 不同。时间戳取决于时区设置,并且此代码不会为每个时区输出相同的值。请注意。相反,请在使用strtotime() 函数之前设置您的时区(查看date_default_timezone_set)或将时区/偏移量附加到您的字符串,例如strtotime('28 Mar 12 16:37:34 UTC')strtotime('28 Mar 12 16:37:34 PST')strtotime('28 Mar 12 16:37:34 UTC+0200') 等。
    • 谢谢,我已经编写了自己的 xml 解析器,然后剪掉了时区部分,在我的情况下 {+0000} 我在将它与当前系统时间进行比较时遇到了问题,因为它似乎没有考虑没有时区的夏令时。现在包含时区,它可以按预期工作。
    【解决方案2】:

    如果您在解析格式时需要最大的灵活性,请使用DateTime::createFromFormat()

    $dt = DateTime::createFromFormat(
        'j M y H:i:s', $dateString, new DateTimeZone('Your/Timezone'));
    $timestamp = $dt->getTimestamp();
    

    【讨论】:

      【解决方案3】:

      php的方式是使用date()和strtotime()

      sql 使用 YYYY-MM-DD HH:MM:SS

      $dateTime = date('Y-m-d H:i:s', strtotime('28 Mar 12 16:37:34'));
      

      【讨论】:

      • 函数 date() 不返回时间戳。 OP 希望将格式化的日期/时间字符串转换为 Unix 时间戳(读取标题和问题),而不是将格式化的字符串从一个更改为另一个。您的示例返回 '2012-03-28 16:37:34' 也是格式化字符串。
      猜你喜欢
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      相关资源
      最近更新 更多