Psyborg Posted September 21, 2010 Share Posted September 21, 2010 I'm trying to switch two dates if one is before the other, but I'm getting some very strange output from this code.... I've verified that the variables contain the correct information, HOWEVER when this code is run, the returns are: $rangeStart = 2016-03-02 <- This is the return even if I give it a static date! $rangeEnd = 2010-09-19 or blank! What am I doing wrong? For this example: $selDay = 17; $selMonth = 9; $selYear = 2010; $pDay[0] = 14; //Day $pDay[1] = 9; //Month $pDay[2] = 2010; //Year $errMsg = "selDay: ".$selDay."-".$selMonth."-".$selYear."; pDay: ".$pDay[0]."-".$pDay[1]."-".$pDay[2]."; selRange: ".$selRange."; TEMP: "; if(mktime(1,1,1,$selMonth,$selDay,$selYear)>mktime(1,1,1,$pDay[1],$pDay[0],$pDay[2])) { $reverse = true; $tmp = $pDay[0]; $pDay[0] = $selDay; $selDay = $tmp; $errMsg.="<br />selDay=".$selDay."<br />pDay[0]=".$pDay[0]; $tmp = $pDay[1]; $pDay[1] = $selMonth; $selDay = $tmp; $errMsg.="<br />selMonth=".$selMonth."<br />pDay[1]=".$pDay[1]; $tmp = $pDay[2]; $pDay[2] = $selYear; $selDay = $tmp; $errMsg.="<br />selYear=".$selYear."<br />pDay[2]=".$pDay[2]; } $RangeStart = date("Y-m-d",mktime(1,1,1,$selMonth,$selDay,$selYear)); //Selected Range start in d-m-Y $RangeEnd = date("Y-m-d",mktime(1,1,1,$pDay[1],$pDay[0],$pDay[2])); //Selected Range start in d-m-Y $errMsg.=";<br /> Range Start: ".$pRangeStart."; <br />Range End: ".$pRangeEnd."; echo $errMsg; Returns: selDay: 17-9-2010; pDay: 14-9-2010; selRange: ; TEMP: selDay=14 pDay[0]=17 selMonth=9 pDay[1]=9 selYear=2010 pDay[2]=2010; Range Start: ; Range End: ; This is getting annoying. Any help would be wonderful. Quote Link to comment Share on other sites More sharing options...
litebearer Posted September 21, 2010 Share Posted September 21, 2010 if all you are essentially doing is comparing the two dates... Psuedo code 1. variables startdate enddate 2. convert startdate and enddate to timestamps (startdate_ts and enddate_ts) 3. if startdate_ts<enddate_ts do nothing else holdate = endate endate = startdate startdate = holddate endif Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.