ugrás a tartalomhoz

2 egyenlő egész, miért nem egyenlő?

eBandee · 2013. Júl. 22. (H), 12.04
Van egy roppant egyszerű metódusom, ami paraméterben kap egy dátumot, és megmondja, hogy a dátum ezen a héten, vagy a következő héten van-e, ha egyik sem akkor exception-t dob.

Na de a hétfői napokon, mindig exception-t dob, hogy se nem ez a hét, se nem a következő. Pedig ha kiíratom a 2 változó értékét, amit vizsgálok, azok egyenlőek (egész típusú mind a kettő), de komparálásnál már nem egyenlőek.

Ennek vajon mi lehet az oka? Még nem találkoztam ilyesmivel... :/

/**
 * Dátum stringből visszaadja, hogy ez a hét, vagy a következő
 * 
 * @param string $date YYYY-MM-DD
 * 
 * @return int {@see JoinForm::WEEK_THIS | JoinForm::WEEK_NEXT}
 */
 private function getWeekFromDate($date)
 {
    $explodedDate = explode('-', $date);
    if (count($explodedDate) !== 3)
        throw new CException('Csak YYYY-MM-DD formátumú dátum a megengedett!');
    $utcTimestamp = strtotime($date.' 00:00:00 UTC');
        
    $paramWeek = intval(gmdate('W', $utcTimestamp));
    $localWeek = intval(gmdate('W'));
      
    var_dump($paramWeek, $localWeek); // int 30, int 30
        
    if ($paramWeek == $localWeek) // itt szerinte nem egyenlőek
        return JoinForm::WEEK_THIS;
    elseif ($paramWeek - 1 == $localWeek)
        return JoinForm::WEEK_NEXT;
    else
        throw new CException('A megadott dátum nem megfelelő!'); // ezt az exception-t kapom
}
 
1

UTC

Poetro · 2013. Júl. 22. (H), 12.10
De miért UTC időt kérsz? És milyen időzónában? Ugyanis, ha te UTC+1 vagy, akkor neked máskor kezdődik a hét, mint aki UTC+0 vagy UTC+2.
2

Adatbázisból szedi a

eBandee · 2013. Júl. 22. (H), 12.14
Adatbázisból szedi a paraméterben kapott dátumot, az pedig UTC+0 (külső adatforrásból kapjuk)... és ahhoz bizony UTC időt kell hasonlítani, hogy ha "időzóna helyesen" akarjuk megmondani, hogy a 2 dátum egy héten van-e. De a kiíratásnál megegyeznek, szóval szerintem jól kellene hogy működjön.
3

OFF topic

eBandee · 2013. Júl. 22. (H), 12.35
Megvan a hiba, én voltam a mulya... Többször kerül meghívásra a metódus, és bizony amikor az exception ágra fut, akkor tényleg nem egyenlő a 2 változó értéke
4

1. hét - 1 != 52. hét

talger · 2013. Júl. 22. (H), 13.09
Az év utolsó hetében nem fog jól működni.
5

És tényleg... köszi! :)

eBandee · 2013. Júl. 22. (H), 14.08
És tényleg... köszi! :)