【问题标题】:Convert a date into a specific format using PHP [duplicate]使用PHP将日期转换为特定格式[重复]
【发布时间】:2017-11-27 07:47:34
【问题描述】:

我想将格式为 06.11.2017 um 18:30 - 21:30 Uhr 的日期转换为格式 2017-11-06。所以应该在 06.11.2017 之后切断所有内容,剩余日期应该以 YYYY-MM-DD 格式输出。

有没有优雅的方法来做到这一点?

【问题讨论】:

  • 你自己尝试过什么?请提供您的代码,我们可以为您提供帮助。
  • 日期“来自”哪里?一个变量?系统函数?
  • 检查我的答案
  • 您可以使用PHP的Explode函数来剪切不需要的日期,然后更改其格式。
  • 我已经尝试使用 substr 函数来删除不需要的部分。不幸的是,它并没有如我所愿。与此同时,我已经决定了 Danyal Sandeelo 的解决方案(见下文)。

标签: php date datetime format php-7


【解决方案1】:
$date = "06.11.2017 um 18:30 - 21:30 Uhr";
$date = explode(" ",$date);

 if(array_key_exists(0,$date))
     echo date("Y-m-d", strtotime($date[0]));

输出:2017-11-06

  • 分解字符串
  • 将第一部分转换为所需的格式。

【讨论】:

  • 我选择了您的解决方案。非常感谢这个:)。当然,感谢所有发布解决方案的其他人。
【解决方案2】:

不优雅但易于实现:

 function formatDate($date) {
     $date = explode(' ', $date);
     $date = explode('.', $date[0]);

     return $date[2] .'-'. $date[1] .'-'. $date[0];
 }

 echo formatDate('06.11.2017 um 18:30 - 21:30 Uhr');

【讨论】:

    【解决方案3】:

    您可以使用PHPExplode 函数来剪切不需要的日期,然后更改其格式。

    以下 PHP 代码可以提供帮助:

    <?php
    $date = "06.11.2017 um 18:30 - 21:30 Uhr";
    $dateArr = explode(" ",$date);
    $wantedDate = $dateArr[0];
    $newDate = date("Y-m-d", strtotime($wantedDate));
    echo $newDate;
    // Output will be 2017-11-06
    ?>
    

    【讨论】:

      【解决方案4】:

      假设您的日期字符串始终采用该格式,请使用 substr() 剪切字符串,然后将日期格式化为 'Y-m-d'

      $date = '06.11.2017 um 18:30 - 21:30 Uhr';
      $date = substr($date, 0, 10); // cut string to take date
      $date = new DateTime($date);  // set string as datetime object
      echo $date->format('Y-m-d');  // formatted date (2017-11-06)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-21
        • 2016-04-17
        • 1970-01-01
        • 2013-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多