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... :/
  1. /** 
  2.  * Dátum stringből visszaadja, hogy ez a hét, vagy a következő 
  3.  *  
  4.  * @param string $date YYYY-MM-DD 
  5.  *  
  6.  * @return int {@see JoinForm::WEEK_THIS | JoinForm::WEEK_NEXT} 
  7.  */  
  8.  private function getWeekFromDate($date)  
  9.  {  
  10.     $explodedDate = explode('-'$date);  
  11.     if (count($explodedDate) !== 3)  
  12.         throw new CException('Csak YYYY-MM-DD formátumú dátum a megengedett!');  
  13.     $utcTimestamp = strtotime($date.' 00:00:00 UTC');  
  14.           
  15.     $paramWeek = intval(gmdate('W'$utcTimestamp));  
  16.     $localWeek = intval(gmdate('W'));  
  17.         
  18.     var_dump($paramWeek$localWeek); // int 30, int 30  
  19.           
  20.     if ($paramWeek == $localWeek// itt szerinte nem egyenlőek  
  21.         return JoinForm::WEEK_THIS;  
  22.     elseif ($paramWeek - 1 == $localWeek)  
  23.         return JoinForm::WEEK_NEXT;  
  24.     else  
  25.         throw new CException('A megadott dátum nem megfelelő!'); // ezt az exception-t kapom  
  26. }  
 
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! :)