我认为我的问题很简单,但我无法弄清楚如何解决它。
我有一个字符串,其中包含以下格式的日期:
stopPropagation
我想将其转换为:
$date=('25/8/1990');
我尝试执行以下操作:
1990-8-25
但我得到的结果是
$newdate=date('Y-m-d',strtotime($date));
而不是
1969-12-31
谢谢
答案 0 :(得分:1)
使用DateTime界面。 -
<?php
$date = '25/8/1990';
$newDate = new DateTime(str_replace('/', '-', $date));
echo $newDate->format('Y-n-d');
<强>输出强>
1990-8-25
答案 1 :(得分:1)
您也可以使用日期时间作为
$date = '25/8/1990';
$date = DateTime::createFromFormat('d/n/Y', $date);
echo $date->format('Y-n-d');//1990-8-25
答案 2 :(得分:0)
如果原始格式一致,请使用DateTime::createFromFormat
:
$date = '25/8/1990';
$date_obj = DateTime::createFromFormat('j/n/Y', $date);
$date = $date_obj->format('Y-n-j');
答案 3 :(得分:0)
使用date_parse_from_format()或strptime()。自动猜测月/日订单放置不是很理智,所以请避免使用strtotime()。
<?php
$strdate='25/8/1990';
$darray=date_parse_from_format("d/m/Y", $strdate);
$newstr=date("Y-m-d", mktime(0, 0, 0, $darray['month'], $darray['day'], $darray['year']));
echo $newstr; //produces 1990-08-25
?>