9
votes

Obtenez des horodatages de la semaine en cours

J'ai une date d'heure de la journée actuelle. J'ai besoin d'obtenir deux horodatages Unix de la fin de la Semaine et de la fin de la semaine en cours. Comment puis-je utiliser la classe SADYPRAINIOIO ou ACTRIVAL?


0 commentaires

4 Réponses :


14
votes
$now = time();
$beginning_of_week = strtotime('last Monday', $now); // Gives you the time at the BEGINNING of the week
$end_of_week = strtotime('next Sunday', $now) + 86400; // Gives you the time at the END of the last day of the week

4 commentaires

Mais que faire quand aujourd'hui est lundi? J'ai eu la semaine de 14 jours.


Ensuite, vérifiez si aujourd'hui est lundi, et s'il est remplacé par «lundi dernier» avec «aujourd'hui». Pour voir si c'est actuellement lundi, faites si (date ('w', $ maintenant ()) == 1)


Semble également "UTC" devrait être annexé pour obtenir l'horodatage UTC0


Sachez que tous les jours ne disposent pas de 86400 secondes, en raison de l'heure d'été et de changements politiques aléatoires.



2
votes
public static function getDaysInWeek($timestamp)
{       
    $monday = idate('w', $timestamp) == 1 ? $timestamp : strtotime("last Monday", $timestamp);

    $days = array();
    for ($i = 0; $i < 7; ++$i)
    {
        $days[$i] = strtotime('+' . $i . ' days', $monday);
    }
    return $days;
}

0 commentaires

6
votes
if (date('w', time()) == 1)
    $beginning_of_week = strtotime('Today',time()); 
else 
    $beginning_of_week = strtotime('last Monday',time()); 

if (date('w', time()) == 7)
    $end_of_week = strtotime('Today', time()) + 86400;
else 
    $end_of_week = strtotime('next Sunday', time()) + 86400;

0 commentaires

0
votes

La manière la plus simple que je puisse penser, c'est que ceci (je suppose le format de la semaine européenne habituelle, remplacez-les par d'autres noms de jour à votre goût):

Wed, 21 Aug 1974 00:00:00 +0200
Wed, 21 Aug 1974 23:59:59 +0200


0 commentaires