web-dev-qa-db-fra.com

Obtenir la date du jour en cours dans PHP

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.

13
anurag-jain

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));
3
anurag-jain

J'ai essayé ceci pour obtenir le jour actuel.

echo date('l'); // output: current day.
24
chanchal

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

5
David Snabel-Caunt

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));
3
codeholic

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
2
Mustafa ELnagar

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.

2
poke

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));
1
Gordon