troubleshooting Question

How would you fix this?

Avatar of Bruce Gust
Bruce GustFlag for United States of America asked on
PHP
3 Comments2 Solutions53 ViewsLast Modified:
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);		

}

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!
ASKER CERTIFIED SOLUTION
Join our community to see this answer!
Unlock 2 Answers and 3 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 2 Answers and 3 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros