2010-10-29 11 views
1

Donc j'essaie juste d'imprimer le jour mois et année (pas d'impression en fait, je vais comparer ensuite avec certaines dates qui sont dans la base de données, mais l'impression teste) , donc mon code ressemble à ceci:Comportement vraiment bizarre lors de l'impression d'une date avec php et drupal

print($now = format_date(time(), "custom", "Ymd"));

print(' ');

print(substr($now, 0, 4)); //year

print(' ');

print(substr($now, 4, 6)); //month

print(' ');

print(substr($now, 6, 8)); //day

Je l'exécution de ce sur le code PHP exécuter dans le module Devel sur un site Drupal. C'est ce que je reçois:

20101029 2010 1029 29

Alors format_date travaille, année et jour vont bien, mais quid du mois? Pourquoi est-ce qu'il imprime 4 caractères, et non 2 comme spécifié?

Répondre

2

de substr PHP est string substr (string $string , int $start [, int $length ])

Donc, votre code doit se lire comme:

print(substr($now, 0, 4)); //year 

print(' '); 

print(substr($now, 4, 2)); //month 

print(' '); 

print(substr($now, 6, 2)); //day 

http://php.net/manual/en/function.substr.php

1

substr accepte $ string, $ start et une longueur facultative $. Essayez d'utiliser 2 au lieu de 6 mois et jour.

+0

oh, sa longueur, pas en position finale – hfingler