在php中将天和年转换为日月和年格式

时间:2012-02-08 20:46:20

标签: php date date-conversion

所以我有以下格式的天数和年份:

322 days
2009 year

我需要将其转换为2009-11-18

php中是否有功能实现此目的?

5 个答案:

答案 0 :(得分:3)

当然,请使用mktimedate

$days = 322;
$year = 2009;
echo date('Y-m-d', mktime( 0, 0, 0, 1, $days, $year));

Output: 2009-11-18

答案 1 :(得分:1)

$newformat = new DateTime::createFromFormat('Y z', "2009 322")->format('Y-M-d');

此处的相关文档:http://php.net/manual/en/datetime.createfromformat.php

答案 2 :(得分:0)

试试这个 strtotime function

答案 3 :(得分:0)

艰难的方式(作为奖励,我解析你给出的输入示例:p):

list($day, $foo, $year, $bar) = sscanf("322 days 2009 year", "%d %s %d %s");
$timestamp = mktime (0,0,0, 1, $day, $year);
echo date('Y-m-d', $timestamp);

答案 4 :(得分:0)

我们在php中有strtotime(),可以很容易地从年份中提取时间戳:

echo $time = strtotime( '1.1.2009');
// 1230764400

并添加天数链接:

echo $newTime = strtotime( '+322 days', $time);
// 1258585200
echo date( 'r', $newTime);
// Thu, 19 Nov 2009 00:00:00 +0100
echo date( 'Y-m-d', $newTime);
// 2009-11-19
// output will be 19 instead of 18 (due to how strtotime handles + days), you
// should use +321 days instead than

btw:我更喜欢Marc B的答案。)