【问题标题】:Convert this to DateTime?将此转换为日期时间?
【发布时间】:2013-02-27 04:45:36
【问题描述】:

如何将以下日期转换为 DateTime 格式:

2013-02-21-12:25:13

日期是这样传递给我们的,在日期和时间之间应该有一个空格。

如何将其转换为 DateTime 格式? mySQL 会自动完成,但我想用 PHP 完成。

我们正在寻找以下输出:

Y-m-d H:i:s

【问题讨论】:

    标签: php


    【解决方案1】:
    $date = DateTime::createFromFormat( 'Y-m-d-H:i:s', '2013-02-21-12:25:13');
    echo $date->format( 'Y-m-d H:i:s');
    

    是的,这是tested,并且被证明是有效的。它输出:

    2013-02-21 12:25:13 
    

    【讨论】:

    • 完美干净,正是我所追求的。
    【解决方案2】:

    使用strtotime php 函数可以帮助你。

    示例

    echo date("Y-m-d H:i:s",strtotime(YOUR_DATE_STRING));
    

    【讨论】:

      【解决方案3】:

      试试这个:

        $date = '2013-02-21-12:25:13';
        $new_date = date('Y-m-d H:i:s', $date); 
        echo $new_date;
      

      【讨论】:

      • 嗯,你应该再次检查你的本地......这不可能。 date() 需要时间戳,而不是字符串。
      【解决方案4】:
      $my_date = '2013-02-21-12:25:13';
      
      $new_date = date("Y-m-d H:i:s", strtotime($my_date));
      
      echo $new_date;
      

      【讨论】:

        【解决方案5】:

        试试下面的代码

        $old_date = '2013-02-21-12:25:13';
        $new_date = date("Y-m-d H:i:s",$old_date);
        echo $new_date;
        

        在一行中

        echo date("Y-m-d H:i:s",'2013-02-21-12:25:13');
        

        【讨论】:

        • 是的,我在您给定的链接上对其进行了测试,它输出1969-12-31 19:33:33
        【解决方案6】:

        试试这个:

        $date = "2013-02-21-12:25:13";
        $d = explode('-', $date);
        
        $date=$d[0].'-'.$d[1].'-'.$d[2].' '.$d[3];
        echo date("Y-m-d H:i:s", strtotime($date));
        

        o/p:

        2013-02-21 12:25:13
        

        希望对您有所帮助!

        【讨论】:

          【解决方案7】:
          $date = '2013-02-21-12:25:13';
          $curdate = DateTime::createFromFormat('Y-m-d-H:i:s', $date);
          echo $curdate->format('Y-m-d H:i:s');
          

          【讨论】:

          • 这会扼杀使用 DateTime 的意义。让 DateTime 用 DateTime::createFromFormat 解析字符串。
          【解决方案8】:

          非标准日期格式?尝试用正则表达式摆脱混乱:

          $string = "2013-02-21-12:25:13";
          $date = date("Y-m-d H:i:s",
              strtotime(preg_replace("/(?:\d+-\d+-\d+)-{1}/","",$string))
          );
          

          【讨论】:

            【解决方案9】:

            试试这个

            $date = '2013-02-21-12:25:13';
            echo substr_replace($date,' ',10,1);
            

            【讨论】:

              猜你喜欢
              • 2019-09-03
              • 2011-12-02
              • 1970-01-01
              • 2014-07-01
              • 1970-01-01
              • 2021-06-10
              • 2013-09-20
              相关资源
              最近更新 更多