【问题标题】:PHP, convert many different date formats into day-month-year [duplicate]PHP,将许多不同的日期格式转换为日-月-年[重复]
【发布时间】:2012-05-27 18:57:05
【问题描述】:

可能重复:
how to convert php date formats to GMT and vice versa?

在 PHP 中,我有一个这样的字符串日期:

May 21, 2012 07:23:15 GMT

或者这个

21 May 2012 07:23:15 GMT

我需要将两个字符串都转换成这样的形式:21-05-2012。 (日-月-年)

PHP 能否正确地将这两个字符串解析为日-月-年格式?

【问题讨论】:

  • 那么,你究竟是如何得到字符串的呢?
  • 这不是一个明显的问题...阅读我的问题的第一行
  • 不,你只是说你'得到一个这样的字符串'。它来自哪里,你创造它吗?你在用什么?您可以在创建时对其进行格式化而不是事后整理吗?
  • 我从页面中获取它作为字符串.. 使用抓取.. 有帮助吗?
  • 确实如此,您可以提供的信息越多,就可以为您的问题提供更好或至少更合适的解决方案,并且应该更好地适应该问题的背景。

标签: php date-conversion


【解决方案1】:

试试这个 -

 $your_string = "21 May 2012 07:23:15 GMT";
 $dd = date("d-m-Y", strtotime($your_string));
 echo $dd;

【讨论】:

  • 酷 :) 希望它现在会成为预期的答案 ;)
【解决方案2】:

你试过 DateTime 类吗?

date_default_timezone_set('Europe/Stockholm');
$date = new DateTime("May 21, 2012 07:23:15 GMT");
print $date->format('Y-m-d');

【讨论】:

  • 没有..有趣的解决方案..我会试试的
  • 添加了 date_default_timezone_set(),你可能需要它。
  • 这与strtotime() 的工作方式相同(有关详细信息,请参阅"Compound Formats" 的手册页)。
  • @Radu 在大多数情况下确实如此,但它提供了一种面向对象的方法来解决问题,有些人会更喜欢。
  • @h00ligan,当然,只是指出它使用相同的逻辑,以免有什么不同。
【解决方案3】:

您可以为此使用strtotime()。或者,如果您知道预期的格式,您可以使用strptime() 来解析它,这是首选。

【讨论】:

    【解决方案4】:

    试试这个

    $str_date = "May 21, 2012 07:23:15 GMT";
    $date = DateTime::createFromFormat('M d, Y H:i:s O', $str_date);
    echo  $date->format('d-m-Y');
    

    【讨论】:

      猜你喜欢
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 2021-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 1970-01-01
      相关资源
      最近更新 更多