Php haftanın en yakın gününü nasıl bulabilirim?

4 Cevap php

Ben böyle bir tarih dizesi var başlangıçta eğer PHP haftanın bir speciefic yakın gününü bulmak için nasıl: 07.05.2010? Örneğin, ben en yakın Pazar (ya da haftanın herhangi bir günü) bulmak istiyorum. Bunu nasıl uygulayabilir? Teşekkürler

4 Cevap

Bu yapmanız gerekir:

echo date('d.m.Y', strtotime('next Sunday', strtotime('07.05.2010')));

Sadece durumda nearest gün yerine next biri, burada yapmak için bir yoldur istedi.

$target = "Sunday";
$date   = "07.05.2010";

// Old-school DateTime::createFromFormat
list($dom, $mon, $year) = sscanf($date, "%02d.%02d.%04d");
$date = new DateTime("$year/$mon/$dom -4 days");
// Skip ahead to $target day
$date->modify("next $target");

echo $date->format("d.m.Y");

Ve PHP 5.3 gibi, bu orta kısmı basitçe olabilir

$date = DateTime::createFromFormat("!d.m.Y", $date)
        ->modify("-4 days")->modify("next $target");

strtotime büyülü

echo date("d/m/y", strtotime("next sunday", strtotime("07.05.2010")  ) );

Orada yayınlanan çeşitli cevaplar ve bana haftanın bir günü next örneği veya previous örneğini but not the closest ya verebilecek çözümler görmeye devam. Bu adres için, bu işlevi ile geldi:

function closestDate($day){

    $day = ucfirst($day);
    if(date('l', time()) == $day)
        return date("Y-m-d", time());
    else if(abs(time()-strtotime('next '.$day)) < abs(time()-strtotime('last '.$day)))
        return date("Y-m-d", strtotime('next '.$day));
    else
        return date("Y-m-d", strtotime('last '.$day));

}

Girdi: Haftanın bir günü ("Pazar", "Pazartesi", vb)

Çıktı: Ben yakın "Pazar" ve bugün için istenirse olduğunu:

  1. "Pazar": Ben bugünün tarihini alacak
  2. "Pazartesi": Ben dünün tarihi alacak
  3. "Cumartesi: Ben yarının tarihini alacak

Bu yardımcı olur umarım :)