homepage Welcome to WebmasterWorld Guest from 54.226.43.155
register, free tools, login, search, pro membership, help, library, announcements, recent posts, open posts,
Become a Pro Member

Home / Forums Index / Code, Content, and Presentation / PHP Server Side Scripting
Forum Library, Charter, Moderators: coopster & jatar k

PHP Server Side Scripting Forum

    
PHP Time to "Number of Days Ago"
cookiemonster




msg:4479797
 9:47 pm on Jul 28, 2012 (gmt 0)

Hey WebmasterWorld folks! Haven't posted here in a long time!

I have a question that I'm guessing will be pretty easy for most of you to answer, but I've been stuck on it for a while now (even after lots of Google searching).

I have a string representing the date of an item which looks like this:
20101231120103 (2010 is the year, 12 is the month, 31 is the day, the rest is irrelevant).

Now I need to convert this string into a simple number of days ago, relative to today's date.

Just a simple integer - I don't want to switch to weeks or hours or years or anything. Just days.


So my question is, what is the most efficient way of accomplishing this task? It seems to me like it would be fairly simple but I can't seem to figure it out.

Thank you in advance!

PS. I'm not "asking you to do my work for me" - just a suggestion or a link to get me on the right track would be enough! :D

Michael

 

cookiemonster




msg:4479811
 10:48 pm on Jul 28, 2012 (gmt 0)

UPDATE:

No replies but I got it figured out thanks to a post at StackOverflow:

[stackoverflow.com...]


It was as simple as

$now = time();
$date = strtotime('20101231120103');
$datediff = $now - $date;
echo floor($datediff/(60*60*24));


Just as I suspected!

Thanks anyways!

g1smd




msg:4479815
 11:15 pm on Jul 28, 2012 (gmt 0)

And how do you take time zones into account?

Do you store the data all converted to UTC?

Something that happens midday "today" in the US is "zero days ago", but New Zealand already has tomorrows date. You need the data stored in a consistent time zone, use UTC.

If you don't take time zones into account and just one second after the event has happened someone in New Zealand checked the age, it would incorrectly say "one day ago".

MaxPowers




msg:4480683
 8:18 pm on Jul 31, 2012 (gmt 0)

Just because... A Unix Timestamp given by time(); or date('U'); would be shorter than your timestamp, have an accuracy to the nearest second, and could be turned into any sort of date-related data in a flash using mktime() or date() and your adjustments would be simple time-based math:
3600 seconds in an hour
86400 seconds in a day

You probably have a reason for using the numbering system you do, but sometimes the best troubleshooting is simply asking if you had the machine plugged in.

Global Options:
 top home search open messages active posts  
 

Home / Forums Index / Code, Content, and Presentation / PHP Server Side Scripting
rss feed

All trademarks and copyrights held by respective owners. Member comments are owned by the poster.
Home ¦ Free Tools ¦ Terms of Service ¦ Privacy Policy ¦ Report Problem ¦ About ¦ Library ¦ Newsletter
WebmasterWorld is a Developer Shed Community owned by Jim Boykin.
© Webmaster World 1996-2014 all rights reserved