【问题标题】:how to re-format datetime string in php?如何在php中重新格式化日期时间字符串?
【发布时间】:2013-04-01 23:52:05
【问题描述】:

我从插件收到日期时间。我把它放到一个变量中:

$datetime = "20130409163705"; 

这实际上转化为 yyyymmddHHmmss

我需要将其作为交易时间显示给用户,但它看起来不正确。

我想把它安排成 09/04/2013 16:37:05 09-apr-2013 16:37:05

如何更改字符串的顺序?

目前我认为是使用 substr 来分隔日期和时间。我仍然不确定如何添加其他字符并重新排列日期。

【问题讨论】:

  • date_parse_from_format() 会做你想做的事。
  • 我刚刚发现这个问题很有用,而且它是 2014 年的问题,所以关闭它的人都在谈论他们的底部。
  • 投票重新开放。虽然问题显示了一个特定的案例,但很容易看到其他案例的应用。通过谷歌找到了这个答案,它为我指明了正确的方向,即使我的具体情况不同。

标签: php date sorting time date-sorting


【解决方案1】:

你有不同的选择。

使用 date():

$format = date('d/m/y H:i:s', 1621371929);
echo $format;

输出是:

18/05/21 14:05:29

使用 date_format():

$date = date_create(1621371929);
echo date_format($date, 'd/m/y H:i:s');

输出是:

18/05/21 14:05:29

使用 DateTime::format():

$date = new DateTime('2021-05-18 14:05:29');
echo $date->format('d/m/y H:i:s');

输出是:

18/05/21 14:05:29

This article 为您提供了这三种方法的概述,this oneDateTime::format() 的深度。

【讨论】:

    【解决方案2】:

    你可以使用date_parse_from_format()函数...

    date_parse_from_format(string $format, string $datetime): array
    

    示例

    <?php
    $date = "6.1.2009 13:00+01:00";
    print_r(date_parse_from_format("j.n.Y H:iP", $date));
    ?>
    

    上面的例子会输出:

    Array
    (
        [year] => 2009
        [month] => 1
        [day] => 6
        [hour] => 13
        [minute] => 0
        [second] => 0
        [fraction] => 
        [warning_count] => 0
        [warnings] => Array
            (
            )
    
        [error_count] => 0
        [errors] => Array
            (
            )
    
        [is_localtime] => 1
        [zone_type] => 1
        [zone] => 3600
        [is_dst] => 
    )
    

    检查the PHP docs..你会明白的

    【讨论】:

    • 嗨,欢迎来到 Stack Overflow!始终欢迎提供指向潜在解决方案的链接,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接中最相关的部分。想象一下,页面被移动到另一台服务器,或者直接链接发生变化——未来的用户将无法从答案中受益。请看how to answer
    【解决方案3】:

    date("Y-m-d H:i:s", strtotime("2019-05-13"))

    【讨论】:

    • 您能否进一步解释该给定行与问题的关系?
    • 请在您的回答中为未来的用户添加一些解释
    • 不错的单线!正在找这个
    【解决方案4】:
    https://en.functions-online.com/date.html?command={"format":"l jS \\of F Y h:i:s A"}
    

    【讨论】:

      【解决方案5】:

      为什么不像下面那样使用date(),试试这个

      $t = strtotime('20130409163705');
      echo date('d/m/y H:i:s',$t);
      

      会被输出

      09/04/13 16:37:05
      

      【讨论】:

        【解决方案6】:

        对于 PHP 5 >= 5.3.0 http://www.php.net/manual/en/datetime.createfromformat.php

        $datetime = "20130409163705"; 
        $d = DateTime::createFromFormat("YmdHis", $datetime);
        echo $d->format("d/m/Y H:i:s"); // or any you want
        

        结果:

        09/04/2013 16:37:05
        

        【讨论】:

          【解决方案7】:

          如果您想使用substr(),您可以像这样轻松添加破折号或斜线..

          $datetime = "20130409163705"; 
          $yyyy = substr($datetime,0,4);
          $mm = substr($datetime,4,6);
          $dd = substr($datetime,6,8);
          $hh = substr($datetime,8,10);
          $MM = substr($datetime,10,12);
          $ss = substr($datetime,12,14);
          $dt_formatted = $mm."/".$dd."/".$yyyy." ".$hh.":".$MM.":".$ss;
          

          你可以从那一点找出任何进一步的格式。

          【讨论】:

            【解决方案8】:

            你可以这样做:

            <?php
            $datetime = "20130409163705"; 
            $format = "YmdHis";
            
            $date = date_parse_from_format ($format, $datetime);
            print_r ($date);
            ?>
            

            你可以看看date_parse_from_format()the accepted format values.

            【讨论】:

              【解决方案9】:

              试试这个

              $datetime = "20130409163705"; 
              print_r(date_parse_from_format("Y-m-d H-i-s", $datetime));
              

              输出:

              [year] => 2013
              [month] => 4
              [day] => 9
              [hour] => 16
              [minute] => 37
              [second] => 5
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2014-09-05
                • 2023-03-14
                • 1970-01-01
                • 1970-01-01
                • 2015-04-01
                • 2011-04-08
                • 1970-01-01
                相关资源
                最近更新 更多