0

如何将日期从yyyy:mm:ddyyyy-m-ddyyyy:mm:dd(不带前导零的月份)转换为yyyy-m-dd(带前导零到月份)?

4

5 回答 5

4

您可以使用DateTime::createFromFormat,然后使用DateTime::format

例子:

$date = DateTime::createFromFormat('Y:m:d', '2012:08:02');
echo $date->format('Y-m-d');

// without leading zero for month
$date = DateTime::createFromFormat('Y:n:d', '2012:8:02');
echo $date->format('Y-m-d');
于 2012-08-02T06:24:17.963 回答
2

使用该$date=strtotime($date)函数获取unix timestamp中的日期。之后,您可以使用该date("Y-m-d",$date)函数将其转换为您想要的格式。这是一个示例:

$date=strtotime($olddate);
$date=date("Y-m-d",$date);
echo $date; // Now this will show you the date in the format you wanted :)
于 2012-08-02T06:23:39.610 回答
2

试试这个:

$dateFrom ="2012:8:2";
$dateTo =  str_replace(":","-",$dateFrom);
$dateTo = date("Y-m-d", strtotime($dateTo));
echo $dateTo;
于 2012-08-02T06:27:52.823 回答
1

使用该date功能。

date将无法理解:为分隔符,因此您需要将其替换为它可以理解的分隔符,例如/or -,以及str_replace.

代码:

$orig_date = '2012:8:2';
$final_date = date('Y-n-d', str_replace(':', '/', $orig_date));
echo $final_date; // Result: 2012-8-02
于 2012-08-02T06:45:47.060 回答
0

使用日期()函数

echo date('Y-m-d'); // for 1st case (replacing ':' with '-')
echo date('Y-j-d'); // for 2nd case (without leading zero)
于 2012-08-02T06:23:44.563 回答