7

YDDD3212 などの形式の日付があります。
この日付をデフォルトの日付文字列、つまり PHP の 2013-08-01 に変換したい
最初の値Yは年を表す唯一の文字であるため、最初の 3 文字を現在の年、つまり 2013 年からの 201
以下は、私が年のために書いたコードです

<?php
$date = "3212"
$y = substr($date,0,1); // will take out 3 out of year 3212
$ddd = substr($date,1,3); // will take out 212 out of year 3212
$year = substr(date("Y"),0,3) . $y; //well create year "2013"
?>

PHPを使用$yearして2013-08-01212に変換するにはどうすればよいですか

参考までに編集
:私のPHPバージョンは5.3.6

4

4 に答える 4

13
$date = "3212";
echo DateTime::createFromFormat("Yz", "201$date")->format("Y-m-d");
// 2013-08-01
于 2013-08-01T07:04:18.183 に答える
2
// Formatted Date (YDDD)
$dateGiven = "3212";

// Generate the year based on the first digit
$year = substr(date("Y"),0,3).substr($dateGiven,0,1);

// Split out the day of the year
$dayOfTheYear = substr($dateGiven,1,3);

// Create a date object from the formatted date
$date = DateTime::createFromFormat('z Y',  "{$dayOfTheYear} {$year}");

// Output the date in the desired format
echo $date->format('Y-m-d');

オンラインで表示: https://eval.in/private/69daafa849ee36

于 2013-08-01T07:09:14.247 に答える