【问题标题】:Getting date from a string without time in php在php中从没有时间的字符串中获取日期
【发布时间】:2018-08-16 08:02:09
【问题描述】:

我必须将一个字符串输入转换为日期“1990/07/22”到22/07/1990作为日期,我的功能如下:

public function($date){
    $date_format_sec = strtotime($date);
    $date_of_birth = new \DateTime('@'.$date_format_sec);
}

由于我没有给出时间,它上传日期为 21/07/1990。如何获得与输入相同的确切日期。

【问题讨论】:

  • 如果 $date 是有效的日期字符串,则不需要使用 strtotime($date),您可以将其传递给 DateTime 的构造函数,然后将其格式化为您想要的任何内容。

标签: php symfony-3.2


【解决方案1】:

你可以用php格式化你的日期

$formatedDate = $date_of_birth->format('d-m-Y');

Documentation

【讨论】:

    【解决方案2】:
        $input = '1990/07/22';
        $date = \DateTime::createFromFormat('Y/m/d', $input)->format('d-m-Y');
    

    【讨论】:

      【解决方案3】:

      正如我所说,您不需要使用 strtotime,如果 $date 字符串是有效日期,则 DateTime 类会读取它。之后就可以使用格式了。

      在此示例中,我将格式设置为始终为您期望的格式,而您可以输入任何其他格式。

      public function getMyDate($date, $format = 'd/m/Y') {
          $date_of_birth = new \DateTime($date);
      
          return $date_of_birth->format($format);
      }
      

      【讨论】:

        【解决方案4】:
            public function formatDate($date) {return date('d/m/Y', strtotime($date));}
        

        【讨论】:

        • 他正在使用一个 DateTime 对象......如果你有这个对象,你为什么要去 strtotime?
        • 虽然此代码可能(或可能不会)解决问题,但好的答案应该始终说明问题是如何解决的以及代码的作用。
        猜你喜欢
        • 1970-01-01
        • 2013-04-01
        • 2017-09-17
        • 2015-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-27
        • 1970-01-01
        相关资源
        最近更新 更多