Je veux obtenir la date du jour en php. ce que j'ai essayé est ici ...
echo $x."<br>";
echo date("D",$x)."<br>";
Mais la sortie était
21-02-10
Thu
Il donne la date correcte mais pas la valeur du jour correcte. Pourquoi ..?
Ce que je veux jour, c'est la date du lundi pour la semaine en cours qui peut être générée n'importe quel jour de la semaine. donc ce que j'ai fait, c'est de prendre le jour d'aujourd'hui et de comparer avec (Lun, Tue .... Sun) et de créer respectivement un horodatage en utilisant
case "Mon":
$startdate1=date("d-m-y");
$parts = explode('-',$startdate1);
$startdate2 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+1),$parts[2]));
$startdate3 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+2),$parts[2]));
$startdate4 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+3),$parts[2]));
$startdate5 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+4),$parts[2]));
$startdate6 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+5),$parts[2]));
$startdate7 = date('d-m-Y',mktime(0,0,0,$parts[1],($parts[0]+6),$parts[2]));
$dates=array(1 => $startdate1,$startdate2,$startdate3,$startdate4,$startdate5,$startdate6,$startdate7);
$i=1;
while( $i <= 7 )
{
echo $dates[$i];
$i++;
}
break;
$ date est le tableau final respectif à aujourd'hui qui doit être retourné. Existe-t-il une autre meilleure méthode pour effectuer cette opération.
Ce que j'ai fait pour le résoudre est utilisé le format de date ('d-m-Y') au lieu de ('d-m-y') dans la fonction de date, ce qui causait le problème. Par conséquent, strtotime a accepté le format et a donné le résultat correct pour
$t=date('d-m-Y');
echo date("D",strtotime($t));
J'ai essayé ceci pour obtenir le jour actuel.
echo date('l'); // output: current day.
Que dis-tu de ça:
//today is monday
if (1 == date('N')){
$monday = time();
}else{
$monday = strtotime('last Monday');
}
for ($i = 0; $i < 7; $i++){
echo date('d-m-Y', $monday) . '<br>';
$monday = strtotime('tomorrow', $monday);
}
Trouvez d'abord lundi, si ce n'est pas aujourd'hui, puis imprimez 7 dates
Ce que je veux jour, c'est la date du lundi pour la semaine en cours qui peut être générée n'importe quel jour de la semaine.
C'est ce que tu veux. $mday
est le jour du mois du lundi de cette semaine. Qu'importe si ce n'est pas positif, mktime
s'en chargera correctement. $monday
a l'horodatage de minuit du lundi.
$now = getdate();
$mday = $now['mday'] - ($now['wday'] + 6) % 7;
$monday = mktime(0, 0, 0, $now['mon'], $mday, $now['year']);
echo(date('d-m-y', $monday));
J'utilise la fonction date et le chemin d'accès au "D" qui font référence au jour en cours, et cela fonctionne avec moi
$today = date("D");
et pour obtenir les informations complètes sur la date actuelle
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
ce que j'ai essayé est ici ...
echo date("D",$x)."<br>";
date
attend une valeur d'horodatage (int) comme deuxième paramètre. Votre $x
est une chaîne contenant un format de date ambigu. Convertissez d'abord cette date en horodatage, en utilisant strptime
ou strtotime
et utilisez correctement la fonction date
pour obtenir la valeur de jour correcte.
En ce qui concerne votre deuxième partie, vous n'avez pas besoin (et ne devriez pas) vérifier le nom du jour pour calculer le bon lundi, mardi, etc. Une approche plus efficace est par exemple en utilisant strtotime
obtenir last Monday
etc.
Vous passez probablement une chaîne comme horodatage
echo $x."<br>";
echo date("D",$x)."<br>";
Retirer $x
et il affichera le jour correct ou le changera en
$x = '21-02-2010';
echo date('D', strtotime($x));