No estás registrado (Registrarse)

Vanilla 1.1.10 es un producto de Lussumo. Para más información: Documentación, Soporte.

    •  
      CommentAuthorignatius
    • CommentTimeJan 29th 2014 editado
     # 1
    He visto los usos de relativos "first day of next month", "last day of the month" o incluso con last, pero, no consigo encontrar información sobre algo tipo

    $d = new DateTime('NOW');
    $d->modify('first day of +'.$i.' months');


    Para x meses futuros, o incluso pasados con restándole el valor... :que: ¿alguna idea?
    •  
      CommentAuthorAntonio
    • CommentTimeJan 29th 2014 editado
     # 2
    Posted By: ignatiusHe visto los usos de relativos "first day of next month", "last day of the month" o incluso con last, pero, no consigo encontrar información sobre algo tipo

    $d = new DateTime('NOW');
    $d->modify('first day of +'.$i.' months');


    Para x meses futuros, o incluso pasados con restándole el valor... :que:¿alguna idea?Días fértiles|Calculadora|500 megas extra en Dropbox


    Lo que tienes puesto es correcto. Lo acabo de probar así.


    for( $i = 1; $i <= 12; $i++ ) {
    $d = new DateTime('NOW', new DateTimeZone("Europe/Madrid"));
    $d->modify('last day of +'.$i.' months');
    echo( $d->format('c') ."\n" );
    }


    No sé exactamente qué es lo que quieres saber.

    Aquí -> http://www.php.net/manual/es/datetime.formats.relative.php tienes la descripción de los formatos relativos.
    •  
      CommentAuthorignatius
    • CommentTimeJan 29th 2014
     # 3
    Posted By: Antonio VillamarinLo que tienes puesto es correcto. Lo acabo de probar así.


    Pues es que a mí me da error... concretamente:

    Warning: DateTime::modify() [datetime.modify]: Failed to parse time string (first day of +3 months) at position 10 (o): The timezone could not be found in the database in /home1/mi/ruta/a/miscript.php on line 480



    Al principio lo tenía puesto solo NOW sin el timezone, le he puesto timezone como tú, pero nada. He probado tanto con "Europe/Madrid" como con "Atlantic/Canary" que es el que tengo global en todo el sitio a través de un:

    date_default_timezone_set('Atlantic/Canary');


    :smash:
    •  
      CommentAuthorAntonio
    • CommentTimeJan 29th 2014
     # 4
    Tiene toda la pinta de ser de la configuración del php.ini que no tiene bien definiza la timezone.

    ¿Qué versión de PHP tienes instalada? Yo lo he probado con la 5.5.3. que es la que tengo instalada en los servidores.

    DateTime está desde la versión 5.2, pero la posibilidad de usar los meses en la descripción es un poco más tarde (parece ser, no lo sabía) ya que al principio solamente se podía usar first of week o last of week.

    Pero vamos, lo primero que probaría seria añadir al php.ini:

    date.timezone = Atlantic/Canary

    A ver si hay suerte. :bigsmile:
    •  
      CommentAuthorignatius
    • CommentTimeJan 29th 2014 editado
     # 5
    Gracias, Antonio. Era la versión de PHP; el caso es que ya había verificado ese punto, antes incluso de abrir el hilo leyendo la documentación de DateTime... pero estaba en un hosting compartido y les pedí que me lo actualizaran y me dijeron que sin problema, te lo cambiamos sobre la marcha; me ensañan un phpinfo y, estupendo.

    Pero solo lo cambiaron para el dominio principal y me he estado volviendo loco porque di por hecho que lo habían cambiado a toda la cuenta y no era así :smash: :typeo:

    Gracias por tu ayuda :cataa: