Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法从字符串中获取日期_Php_Date - Fatal编程技术网

Php 无法从字符串中获取日期

Php 无法从字符串中获取日期,php,date,Php,Date,我的日期字符串如下: $rawDate = "08/08/2017 - 21/09/2017"; $date1 = date('Y-m-d', strtotime($dates[0])); echo "Date 1: " . $date1; echo "<br/>"; $date2 = date('Y-m-d', strtotime($dates[1])); echo "Date 2: " . $date2; 为了将两个日期分开,我使用了如下代码: $dates = expl

我的日期字符串如下:

$rawDate = "08/08/2017 - 21/09/2017";
$date1 = date('Y-m-d', strtotime($dates[0])); 
echo "Date 1: " . $date1;
echo "<br/>";
$date2 =  date('Y-m-d', strtotime($dates[1]));
echo "Date 2: " . $date2;
为了将两个日期分开,我使用了如下代码:

$dates = explode("-", $rawDate);
现在,我想将日期打印为Date1和Date2,如下所示:

$rawDate = "08/08/2017 - 21/09/2017";
$date1 = date('Y-m-d', strtotime($dates[0])); 
echo "Date 1: " . $date1;
echo "<br/>";
$date2 =  date('Y-m-d', strtotime($dates[1]));
echo "Date 2: " . $date2;
$date1=date('Y-m-d',strottime($dates[0]);
回音“日期1:”$日期1;
回声“
”; $date2=日期('Y-m-d',标准时间($dates[1]); 回音“日期2:”$日期2;
我希望结果为
日期1:2017-08-08
日期2:2017-09-21

但我得到的结果是
日期1:2017-08-08
日期2:2017-01-01

谁能告诉我这是怎么发生的吗?

试试这个

$rawDate = "08/08/2017 - 21/09/2017";
$dates = explode(" - ", $rawDate);

$date1 = date('Y-m-d', strtotime(str_replace('/','-',$dates[0]))); 
echo "Date 1: " . $date1;
echo "<br/>";
$date2 =  date('Y-m-d', strtotime(str_replace('/','-',$dates[1])));
echo "Date 2: " . $date2;
$rawDate=“2017年8月8日-2017年9月21日”;
$dates=分解(“-”,$rawDate);
$date1=date('Y-m-d',strotime(str_replace('/','-',$dates[0]));
回音“日期1:”$日期1;
回声“
”; $date2=日期('Y-m-d',strotime(str_replace('/','-',$dates[1])); 回音“日期2:”$日期2;
如果使用DateTime对象,生活中处理日期会容易得多,因为指定接收日期的格式很容易

$rawDate = "08/08/2017 - 21/09/2017";

$dates = explode("-", $rawDate);

$date1 = DateTime::createFromFormat('d/m/Y', trim($dates[0])); 
echo "Date 1: " . $date1->format('Y-m-d');
echo PHP_EOL;
$date2 = DateTime::createFromFormat('d/m/Y', trim($dates[1])); 
echo "Date 2: " . $date2->format('Y-m-d');

d/m/Y
m/d/Y
的奇迹。。。。PHP的,任何一年都没有第21个月“我希望结果为日期1:2017-08-08日期2:1970-09-21”-有趣的是,第二个日期是
21/09/2017
,为什么你希望它是
1970-09-21
?我不认为DD/MM/YY是一种有效的格式,你不应该按
'-'
,而不是
'-'
?请注意,这是您经常需要使用的格式;你能控制吗<代码>$rawDate=“2017年8月8日-2017年9月21日”旁注:
echo PHP\u EOL仅在的HTML源代码中显示为新行。如果输出在屏幕上显示为新行,则应将其替换或附加