2011-05-04 2 views
0

Je suis nouveau dans le monde du codage ainsi que PHP et befuddled par ce que le '-01' fait dans le code ci-dessous.PHP strtotime fonction quandry

strtotime($someYear . '-' . $someMonth . '-01'); 
+2

Voir aussi: [formats de date et l'heure compris par 'strtotime ',' date_create' et le constructeur de l'objet DateTime] (http://us2.php.net/manual/en/datetime.formats.php). – Charles

+0

Une approche plus propre serait 'mktime (0,0,0, $ someMonth, 1, $ un an);' –

+0

@Frank Farmer - Merci. Pourquoi cela est-il jugé plus propre? – PeanutsMonkey

Répondre

5

Sélection du premier jour du mois.

. est l'opérateur de concaténation de chaînes en PHP, et PHP convertira automatiquement les nombres en chaînes.

disons que Vous aviez:

$someYear = 2011; 
$someMonth = 5; 

Et vous voulez l'horodatage du début de ce mois, vous pouvez le faire avec que:

$someDate = $someYear . '-' . $someMonth . '-01'; // equivalent to "2011-5-01" 
strtotime($someDate); 

C'est un peu laid, mais ça marche.

+0

@therefromhere - Merci. Mais même si je ne le spécifie pas, j'obtiens toujours le même résultat. Alors pourquoi le spécifier? – PeanutsMonkey

+0

@therefromhere - Merci. C'est très clair cependant pourquoi ne pas l'écrire comme '$ someDate = $ someYear. '-'. $ someMonth. '-' .'01 '; ' Le' -01' m'a confondu comme une déduction de quelque sorte, par exemple. moins 1 mois ou jour, etc. – PeanutsMonkey

+0

@PeanutsMonkey, oui, c'est une approche rapide et sale. Il est préférable d'être explicite au sujet de votre format, puisque 'strtotime' devinera (ce qui est ce qu'il fait quand vous ne spécifiez pas le numéro du jour), mais cela peut devenir confus. –

3

Définit le jour au premier du mois, à savoir si $ someYear est « 1999 » et $ someMonth est « 01 » cela donne

strtotime("1999-01-01"); 
+0

Merci. Similaire à ce que j'ai demandé '' therefromhere'', pourquoi le spécifier quand j'obtiens le même résultat en l'excluant? – PeanutsMonkey

+0

@PeanutsMonkey - vous pouvez écrire la date sous de nombreuses formes, par exemple strtotime ("premier jour de janvier 1999") est également valide. Jetez un oeil au manuel pour d'autres exemples http://php.net/manual/fr/function.strtotime.php – fredrik