¿Cómo puedo obtener el último día (31 de diciembre) del año actual como una fecha con PHP?

He intentado lo siguiente pero no funciona:

$year = date('Y');
$yearEnd =  strtotime($year . '-12-31');

Lo que necesito es una fecha que parece 2014-12-31 para el año en curso.

OriginalEl autor user2571510 | 2014-02-24

4 Comentarios

  1. 12

    PHP strtotime() utiliza la fecha/hora actual como base (para que no se utilizará este año en curso), y que necesita date() a formato:

    $yearEnd = date('Y-m-d', strtotime('Dec 31'));
    
    //or
    
    $yearEnd = date('Y-m-d', strtotime('12/31'));

    OriginalEl autor AbraCadaver

  2. 9

    Sólo puede concatenar año actual con fecha requerida

    $year = date('Y') . '-12-31';
    echo $year;
    //output 2014-12-31
    … o incluso date('Y-12-31')
    Sí que va a trabajar demasiado!
    Voy a ir por la segunda opción – muchas gracias por la ayuda rápida !

    OriginalEl autor Fabio

  3. 4

    DateTime es perfectamente capaz de hacer esto:

    $endOfYear = new \DateTime('last day of December this year');

    Incluso puedes combinarlo con más de modificadores para conseguir el final del próximo año:

    $endOfNextYear = new \DateTime('last day of December this year +1 years');
    ¿Cómo puedo pasar un año como un parámetro y obtener el último día del año ?
    En ese caso, simplemente, pasar el año $endOfYear = new \DateTime('last day of December 2019'); pero ten en cuenta que esto sólo funciona para los años >1000 como para disminuir años obtendrá un «Error de tiempo de análisis de la cadena de’ excepción.
    Tenga en cuenta que la cadena «el último día de diciembre de este año» puede ser útil para su uso con el modify() función.

    OriginalEl autor xtra

  4. 3

    Otra manera de hacer esto es utilizar la Relación de los Formatos de strtotime()

    $yearEnd = date('Y-m-d', strtotime('last day of december this year'));
    
    //or
    
    $yearEnd = date('Y-m-d', strtotime('last day of december'));

    OriginalEl autor Maurice

Dejar respuesta

Please enter your comment!
Please enter your name here