Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.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

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,我想把59改成2012年2月29日。我已经知道今年是2012年。我尝试下面的代码。但它给出了2012年3月1日 $string = '59 2012'; $date1 = date_create_from_format('z Y', $string); $date_time = date_format($date1, 'Y-m-d'); echo $date_time; 您可以改为使用: 尝试: 更新: 代码中的问题是因为z从0开始,所以需要减去1 $date1 = date_create_f

我想把59改成2012年2月29日。我已经知道今年是2012年。我尝试下面的代码。但它给出了2012年3月1日

$string = '59 2012';
$date1 = date_create_from_format('z Y', $string);
$date_time = date_format($date1, 'Y-m-d');
echo $date_time;
您可以改为使用:

尝试:

更新:

代码中的问题是因为
z
0
开始,所以需要减去
1

$date1 = date_create_from_format('z', 59 - 1);
$date_time = date_format($date1, 'Y-m-d');
echo $date_time;

我以前遇到过这个问题,这就是我提出的解决方案:

/**
 * Get date if leap year
 * 
 * @param int $year z date format
 * @param int $date Y date format
 * 
 * @return object|null
 */
private function getLeapYearDate($year, $date)
{
    if ($date >= 1 && $date <= 59) {
        return date_create_from_format('z', $date - 1);
    } else if ($date == 60) {
        return date_create($year . '-02-29');
    } else if ($date >= 61 && $date <= 365) {
        return date_create_from_format('z', $date - 2);
    } else if ($date == 366) {
        return date_create($year . '-12-31');
    }

    return null;
}
/**
*获取闰年的日期
* 
*@param int$year z日期格式
*@param int$date Y日期格式
* 
*@return object | null
*/
私有函数getLeapYearDate($year,$date)
{

如果($date>=1&&$date=61&&$date搞笑,如果是其他任何一天,OP可能会发现一个:)
$date1 = date_create_from_format('z', 59 - 1);
$date_time = date_format($date1, 'Y-m-d');
echo $date_time;
/**
 * Get date if leap year
 * 
 * @param int $year z date format
 * @param int $date Y date format
 * 
 * @return object|null
 */
private function getLeapYearDate($year, $date)
{
    if ($date >= 1 && $date <= 59) {
        return date_create_from_format('z', $date - 1);
    } else if ($date == 60) {
        return date_create($year . '-02-29');
    } else if ($date >= 61 && $date <= 365) {
        return date_create_from_format('z', $date - 2);
    } else if ($date == 366) {
        return date_create($year . '-12-31');
    }

    return null;
}