格式化日期时间无法使用PHP格式化为特定格式

时间:2018-03-12 06:11:28

标签: php date

我有以下格式的日期时间输入字符串

Wednesday 9th 2018 12.00am

我想把它转换成这样的东西

2018-03-09

我尝试使用strtotime功能,但它没有用。 有什么想法吗?

3 个答案:

答案 0 :(得分:0)

没有月份规范PHP无法选择月份作为日期。 我按照你的日期输入添加月份准备了解决方案: 2018年3月9日星期三12.00am

<?php
$original_date = "Wednesday 9th March 2018 12.00am";
$pieces = explode(" ", $original_date);
$new_date = date("Y-m-d",strtotime($pieces[1]." ".$pieces[2].",".$pieces[3]));
echo $new_date;

输出:2018-03-09

演示:https://eval.in/970073

希望这有帮助!

答案 1 :(得分:0)

检查提供正确日期所需的日期。

<?php

 $givendate = "Wednesday 7th March 2018 12.00am";
 echo $newDate = date("Y-m-d", strtotime($givendate));
?>

答案 2 :(得分:0)

这是一种方法,可以找到哪个月有第9个作为星期日 我循环几个月并将它们添加到字符串中,看看那个月的那一天是否与字符串中的那一天相同 如果它是真的我将它添加到&#34;列表&#34;可能的日期。

$str = "Wednesday 9th 2018 12.00am";
$months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];

$arr = explode(" ", $str);
$day = $arr[1];
$parts = [$arr[0]. " ".$arr[1], $arr[2]. " ".$arr[3]];


Foreach($months as $m){
   $unix = strtotime($parts[0] . " " .$m . " " . $parts[1]);
   If(date("d", $unix) == substr($day,0,-2)) $res[]= date("Y-m-d", $unix);
}

Var_dump($res);

https://3v4l.org/jc2HY