【问题标题】:PHP Convert formatted date into unixtime [duplicate]PHP将格式化日期转换为unixtime [重复]
【发布时间】:2013-09-07 05:09:34
【问题描述】:

我的日期格式为 Y-M-D 小时-分钟-秒 2013-09-03 12:10:28,但我需要 unixtimestamp。

PHP 有许多转换日期和时间的函数,但显然没有一个函数可以接受日期及其格式并将其转换为 unixtime。我找到的最接近的函数是mktime(),但我需要将我当前的日期解析为它的每个组件。有没有更简单的方法?

【问题讨论】:

  • strtotime 可以完美处理这种格式。
  • echo strtotime('2013-09-03 12:10:28');
  • 忘记 strtotime()、date()、time() 和类似函数。开始使用 DateTime 类。示例:echo (new DateTime('2013-09-03 12:10:28'))->getTimestamp()

标签: php date timestamp


【解决方案1】:

strtotime('2013-09-03 12:10:28');

【讨论】:

    【解决方案2】:
    <?php
    $date = DateTime::createFromFormat('Y-m-d H:i:s', '2013-09-03 12:10:28');
    echo $date->getTimestamp();
    

    恕我直言,最好不要使用 strtotime(),因为它会尝试猜测时间格式。我不喜欢编程中的任何“魔法”。

    【讨论】:

    • 这是最好的选择,因为格式是明确的而不是暗示的。
    • 如果您的日期格式不是动态格式,那很好。
    • 我同意其他类型的格式,但yyyy-mm-dd H:i:s 对“魔术”来说太标准了;)如果日期时间在supported date and time formats 中,那么您无需担心“魔术” “正在发生。
    【解决方案3】:
    <?php
    $str = '2013-09-03 12:10:28';
    echo strtotime($str);
    

    1378228228

    【讨论】:

      【解决方案4】:

      你可以试试strtotime

      echo strtotime('2013-09-03 12:10:28'); // 1378210228
      

      【讨论】:

        【解决方案5】:
        <?php 
        echo strtotime('1/1/2013');
        ?>
        

        输出:1356994800 -> Unix时间戳

        类似问题here

        【讨论】:

          猜你喜欢
          • 2010-12-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-04-21
          • 1970-01-01
          相关资源
          最近更新 更多