【问题标题】:php date reformatphp日期重新格式化
【发布时间】:2011-01-05 13:53:53
【问题描述】:

我需要一个函数来获取任何日期/时间并将其重新格式化为不同的格式。

例如

$date = "31/12/2010 15:00:00" => 格式为d/m/Y H:i:s 所以如果我需要不同的格式,比如

$returning_format = "m/d/Y H:i:s" => 美国日期/时间

$newdate = transoform_date($current_format,$returning_format,$date); 上面的行应该返回12/31/2010 15:00:00

注意:我不需要这种格式,因为我可以分解它并重新排列它,所以它可以接受任何格式并返回所需的格式日期。

【问题讨论】:

标签: php datetime


【解决方案1】:

对于 PHP 5.3+

$newdate = DateTime::createFromFormat($current_format,$date)->format($returning_fomrat);

【讨论】:

  • 大多数共享托管公司允许您使用 php 5.2.6,因此实际上与保留它一样好,或者更好,因为它会引发 php 错误
  • 你只能通过向他们施加压力来强迫他们使用 5.3 ;) 幸运的是 5.2.16 是 5.2 中的最后一个版本
  • 我在为一家公司工作,如果我强迫他们为每个客户服务,我会浪费大量时间与托管公司交朋友,因为约会时间不实用(还),但 +1 以获得确切的功能如答案所述
【解决方案2】:

strtotime — 将任何英文文本日期时间描述解析为 Unix 时间戳

function transform_date($return_format, $date)
{
    return date($return_format, strtotime($date));
}

【讨论】:

  • 它如何知道5-1-111-5-11 之间的区别?
  • 这也让我失望了 :)
  • strtotime on php.net 告诉我们:php.net/manual/en/datetime.formats.php中解释了有效格式
  • 别误会,只要你输入正确的格式,strtotime 就很棒。然而,问题是关于解析任何格式,只要给出格式规范。
  • oki ,假设您通过了那个时间并且它没有按预期工作,您将使用@Mchi 示例您必须知道当前的日期格式,您知道吗?如果没有,那么最好的选择就是使用它。
猜你喜欢
  • 1970-01-01
  • 2019-12-25
  • 2012-06-22
  • 1970-01-01
  • 1970-01-01
  • 2013-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多