【问题标题】:Function to parse date to parts将日期解析为部分的函数
【发布时间】:2011-08-02 21:18:17
【问题描述】:

PHP 中是否有任何不错的函数可以将日期解析为指定格式的部分?

例如

some_function('20112000', 'dmY') 
some_function('2000-11-20', 'Y-m-d')
some_function('2000 text 11-20', 'Y text m-d')

array('d'=>20, 'm'=>11, 'Y'=>2000) 在上述所有情况下都需要,
(假设格式兼容date()函数)

更新:

我使用 PHP 5.1.9
这也可以使用Zend_Date,但它使用与date() 不同的格式(例如ddMMyyyy

【问题讨论】:

标签: php date formatting string-formatting


【解决方案1】:

使用 PHP >= 5.3,DateTime::createFromFormat() 允许根据指定格式解析日期。

之后,您将获得一个 DateTime 对象,并由您使用它来获得您想要的数组。

【讨论】:

  • 谢谢,不过这次我只有 PHP 5.1.9。
  • 5.1 ???呃;你知道这是几岁吗?甚至 PHP 5.2 也已终止支持? (我想这不是你的错,而是因为你使用的是 RedHat 或其他类似的发行版......)
  • 更新!真的 ;) 最后一个 5.1 是 2006 年,同年 5.2 发布,甚至 5.3 现在已经 2 岁了。
  • 我同意 Pascal 的观点,但不幸的是,不是 很久以前我很高兴(嗯)必须在 PHP 4 上工作一些客户。并非总是我们可以控制的因素,但确实会抱怨某些内容已终止支持(甚至终止安全更新),在某些情况下只能这样做。
  • 是的,我也不喜欢。无论如何,我这次无法访问5.3。
【解决方案2】:

自己写:

function ($date, $format = array('d', 'm', 'Y')) {
    $ts = strtotime($date);
    $out = array();
    foreach ($format as $v) {
        $out[$v] = date($v, $ts);
    }
    return $out;
}

【讨论】:

    【解决方案3】:

    对于 PHP strptime。它使用strftime 格式,但正是您正在寻找的。​​p>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多