We help IT Professionals succeed at work.

How would you fix this?

Bruce Gust
Bruce Gust asked
on
45 Views
Last Modified: 2017-03-26
Here's the code as it exists currently:

$todaydatetime=date("Y-m-d");

$lastsyncdatetime=new DateTime();
$the_date=$lastsyncdatetime->format("Y-m-d");
$subtract_thirty=strtotime('-30 day', strtotime($the_date));
$subtract_thirty_calc=date("Y-m-d", $subtract_thirty);

$syncyear = date('Y',$subtract_thirty);
$syncmonth =date('m',$subtract_thirty);		
$syncday = date('d',$subtract_thirty);	

while ($todaydatetime > $subtract_thirty_calc) {

//do some database stuff

$syncday++;
$lastsyncdate = date("m/d/y",mktime(0,0,0,$syncmonth,$syncday,$syncyear));
$comptime = mktime(0,0,0,$syncmonth,$syncday,$syncyear);
$syncyear = date('Y',$comptime);
$syncmonth =date('m',$comptime);
$syncday = date('d',$comptime);	
//$lastsyncdatetime is now $subtract_thirty_calc and you've got to figure out how to increment that
$subtract_thirty_calc = new DateTime($syncyear.'-'.$syncmonth.'-'.$syncday);		

}

Open in new window


This isn't my code. My job is to clean it up and I've had a hard time up to this point just because there appeared to be several instances where they were using the DateTime object improperly. In other words, they were making comparisons and doing calculations on an object so when I went to test it, the system generated a warning saying that it needed a string.

That being the case, I went through and made some changes but I'm stuck. Right now it appears as though the above loop will advance the day, but, again, the very last line you've got $subtract_thirty_calc and it looks as though they're trying to increase the original date value by one day, but it's not working and I'm stuck as to how you would advance the day and not wind up with something like February 31st.

Bottom line: What do I need to do after $syncday++ to increment the $subtract_thirty_calc date and have it properly formatted so it can continue being used in the comparison that's happening at the top of the "while" loop?

Thanks!
Comment
Watch Question

CERTIFIED EXPERT
Most Valuable Expert 2017
Distinguished Expert 2019
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
UNLOCK SOLUTION
Most Valuable Expert 2011
Author of the Year 2014
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
UNLOCK SOLUTION
Most Valuable Expert 2011
Author of the Year 2014

Commented:
stale question