435,619 Members | 1,861 Online + Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,619 IT Pros & Developers. It's quick & easy.

Calculating Date Differences Help Needed

 P: n/a What's a good way to calculate the number of days between two dates in the following format: 2003-07-15 2003-08-02 I've looked at the PHP date functions but I'm still a bit lost... Jul 16 '05 #1
6 Replies

 P: n/a Yeah, I follow that - but I end up with a unix epoch date - how can I determine how many days diff that represents? In other words, per your suggestion I can get date1 and date2 and determine via mktime the diff - but I still need to know how many days diff that is??? On Sun, 03 Aug 2003 03:18:26 GMT, Blaine HIlton wrote: What you need to do is check the mktime() function athttp://www.php.net/manual/en/function.mktime.php.Basiclly you would use mktime and send the function the date and callthat date1 and then another mktime and call that date2. Then justsubtract. mktime() will give you the unix epoch date. Also for a good example check outhttp://www.befriend.com/code_gallery..._elapsed_time/, howeverthere are I believe 2 errors where a division sign should be amultiplication.Mine looks like: //\$divider['months'] = ( 60 * 60 * 24 * 365 / 12 ); \$divider['months'] = ( 60 * 60 * 24 * 365 * 12 ); // cheangedthis one too // \$divider['weeks'] = ( 60 * 60 * 24 / 7 ); \$divider['weeks'] = ( 60 * 60 * 24 * 7 ); // I changed / to *and can be seen in action at http://www.webcalc.net/calc/0529.php. Jul 16 '05 #2

 P: n/a I would say first check out the 3 links that I gave: http://www.php.net/manual/en/function.mktime.php http://www.befriend.com/code_gallery..._elapsed_time/ http://www.webcalc.net/calc/0529.php If you read through there you will have it working. Once you have the time from epoch for each date you subtract. That gives you the seconds, then times by 60 for minutes, then 60 more for hours then 24 for days. -- Blaine Hilton http://www.webcalc.net/ On Sun, 03 Aug 2003 06:00:32 GMT, Ralph Freshour wrote: Yeah, I follow that - but I end up with a unix epoch date - how can Idetermine how many days diff that represents? In other words, peryour suggestion I can get date1 and date2 and determine via mktime thediff - but I still need to know how many days diff that is??? On Sun, 03 Aug 2003 03:18:26 GMT, Blaine HIlton wrote:What you need to do is check the mktime() function athttp://www.php.net/manual/en/function.mktime.php.Basiclly you would use mktime and send the function the date and callthat date1 and then another mktime and call that date2. Then justsubtract. mktime() will give you the unix epoch date. Also for a good example check outhttp://www.befriend.com/code_gallery..._elapsed_time/, howeverthere are I believe 2 errors where a division sign should be amultiplication.Mine looks like: //\$divider['months'] = ( 60 * 60 * 24 * 365 / 12 ); \$divider['months'] = ( 60 * 60 * 24 * 365 * 12 ); // cheangedthis one too // \$divider['weeks'] = ( 60 * 60 * 24 / 7 ); \$divider['weeks'] = ( 60 * 60 * 24 * 7 ); // I changed / to *and can be seen in action at http://www.webcalc.net/calc/0529.php. Jul 16 '05 #3

 P: n/a I did check out the links you gave me - I understand the epoch number now - but when I do the math to get the number of days difference I get a huge number: // get todays date \$now = time(); print "
now: \$now"; \$then = mktime(0,0,0,8,15,2003); print "
then: \$then"; \$diff = \$now - \$then; print "
diff: \$diff"; \$min = \$diff * 60; print "
min: \$min"; \$hours = \$min * 60; print "
hours: \$hours"; \$days = \$hours * 24; print "
days: \$days"; \$days is a huge number and there is not that many days diff between time() and august 15, 2003 - what am I not understanding here? On Sun, 03 Aug 2003 07:23:52 GMT, Blaine HIlton wrote: I would say first check out the 3 links that I gave:http://www.php.net/manual/en/function.mktime.phphttp://www.befriend.com/code_gallery..._elapsed_time/http://www.webcalc.net/calc/0529.phpIf you read through there you will have it working. Once you have thetime from epoch for each date you subtract. That gives you theseconds, then times by 60 for minutes, then 60 more for hours then 24for days. Jul 16 '05 #4

 P: n/a Ralph Freshour wrote: I did check out the links you gave me - I understand the epoch number now - but when I do the math to get the number of days difference I get a huge number: // get todays date \$now = time(); print "
now: \$now"; \$then = mktime(0,0,0,8,15,2003); print "
then: \$then"; \$diff = \$now - \$then; print "
diff: \$diff"; \$min = \$diff * 60; print "
min: \$min"; \$hours = \$min * 60; print "
hours: \$hours"; \$days = \$hours * 24; print "
days: \$days"; \$days is a huge number and there is not that many days diff between time() and august 15, 2003 - what am I not understanding here? What you're not understanding is the fact that his math was wrong ;) If you've got 60 seconds in a minute, then there are 60 / 60 = 1 minute in a minute, not 60 * 60 = 3600 minutes in a minute. Change all those * to / and it should work. Jul 16 '05 #5

 P: n/a I got it - I finally got it to work... Thanks... On Sun, 03 Aug 2003 07:23:52 GMT, Blaine HIlton wrote: I would say first check out the 3 links that I gave:http://www.php.net/manual/en/function.mktime.phphttp://www.befriend.com/code_gallery..._elapsed_time/http://www.webcalc.net/calc/0529.phpIf you read through there you will have it working. Once you have thetime from epoch for each date you subtract. That gives you theseconds, then times by 60 for minutes, then 60 more for hours then 24for days. Jul 16 '05 #6

 P: n/a Yes sorry about that / is a big difference then ;-) -- Blaine On Sun, 03 Aug 2003 10:35:48 -0400, Joshua Ghiloni wrote: Ralph Freshour wrote: I did check out the links you gave me - I understand the epoch number now - but when I do the math to get the number of days difference I get a huge number: // get todays date \$now = time(); print "
now: \$now"; \$then = mktime(0,0,0,8,15,2003); print "
then: \$then"; \$diff = \$now - \$then; print "
diff: \$diff"; \$min = \$diff * 60; print "
min: \$min"; \$hours = \$min * 60; print "
hours: \$hours"; \$days = \$hours * 24; print "
days: \$days"; \$days is a huge number and there is not that many days diff between time() and august 15, 2003 - what am I not understanding here?What you're not understanding is the fact that his math was wrong ;) Ifyou've got 60 seconds in a minute, then there are 60 / 60 = 1 minute ina minute, not 60 * 60 = 3600 minutes in a minute. Change all those * to/ and it should work. Jul 16 '05 #7

This discussion thread is closed

Replies have been disabled for this discussion. 