2015-07-15 1 views
4

enter image description here Je veux afficher les dates des jours respectifs du mois en particulier. Comment puis-je le faire? Je parviens seulement à entrer le mois et montrer toutes les dates.Comment puis-je obtenir les jours du mois en utilisant php?

<html> 
 
<body> 
 
<form method="POST"> 
 
Day (Eg: Sunday) : <input name="day" required type="text" size="30" style="height:30px;" /> <br/><br/> 
 
Month (Eg: 7) : <input name="month" required type="text" size="30" style="height:30px;" /> <br/><br/> 
 
<input name="Submit" type="submit" value="Log In" style="background-color: #2E9AFE; border: 1px solid #084B8A; padding: 1px 3px; color:#fff; width:60px; height:30px;" /> 
 
</form> 
 

 
<?php 
 

 
\t $day=$_POST['day']; 
 
\t $month=$_POST['month']; 
 
\t 
 
    function getDates($y, $m) 
 
\t { 
 
\t \t return new DatePeriod(
 
\t \t \t new DateTime("first sunday of $y-$m"), 
 
\t \t \t DateInterval::createFromDateString('next sunday'), 
 
\t \t \t new DateTime("last day of $y-$m") 
 
\t \t); 
 
\t } 
 

 
\t foreach (getDates(2015, $month) as $getDay) { 
 
\t \t echo $getDay->format("l, Y-m-d\n"); 
 
\t } 
 

 
\t 
 
?> 
 
</body> 
 
</html>

+1

Vous souhaitez afficher tous les jours du mois donné? –

+0

oui ~ comme je veux juste afficher tout le lundi d'août ... tu sais comment le faire? – wendy

Répondre

1

Si vous souhaitez donner seulement le mois en entrée itérer puis avec le nombre total de jours dans le mois

Voici le eval

<?php 
$Days=array(); 
$Month = 8; 
for($d=1; $d<=31; $d++) 
{ 
    $Time=mktime(12, 0, 0, $Month, $d, '2015');   
    if (date('m', $Time)==$Month)  
     $Days[]=date('Y-m-d-D', $Time); 
} 
echo '<pre>'; 
print_r($Days); 
echo '</pre>'; 
?> 

Remarque :

  1. J'ai donné l'année directement où vous pouvez donner comme dynamique (choix de l'utilisateur).

  2. Les jours dans le mois est donné directement en tant que 31 vous trouverez le nombre de jours et le donner aussi.

Mise à jour:

Comme l'OP veut obtenir que les dates Monday.

<?php 
$Days=array(); 
$Month = 12; 
for($d=1; $d<=31; $d++) 
{ 
    $Time=mktime(12, 0, 0, $Month, $d, '2014');   
    if (date('m', $Time)==$Month)  
     $Day=date('D', $Time); 
     if($Day=='Mon') 
     { 
     $Days[]=date('Y-m-d-D', $Time); 
     } 
} 
echo '<pre>'; 
print_r($Days); 
echo '</pre>'; 
?> 

Voici le updated eval

+0

mais je veux la date de tout le lundi d'août .. pas le total de lundi en août – wendy

+0

Oui, juste une minute :) –

+0

pourquoi je ne suis pas en mesure de changer le dimanche en $ jour comme ça? Il pop-up erreur "getDates fonction ($ y, m $) \t { \t \t retour nouvelle DatePeriod ( \t \t \t new DateTime (" premier:. $ Jour "de y- $ $ m"),. \t \t \t DateInterval :: createFromDateString («jour ouvrable suivant $), \t \t \t new DateTime ("dernier jour de y- $ $ m") \t \t); \t} " – wendy

0
$first_date = date('Y-m-d', strtotime("first Sunday of this month", strtotime('01-07-2015'))); 
$last_date = date('Y-m-d', strtotime("last Sunday of this month", strtotime('01-07-2015'))); 
$days[]  = $first_date; 
while(strtotime($first_date) <= strtotime($last_date)) { 

    $first_date = date('Y-m-d', strtotime("next Sunday ", strtotime($first_date))); 
    if(strtotime($first_date) <= strtotime($last_date)) { 
     $days[] = $first_date; 
    } 

} 
    echo '<pre>';print_r($days);exit;