PDA

View Full Version : Calculating local time


TalkVirginia
03-16-2010, 08:57 AM
Can someone help me with calculating and displaying local time from a timestamp please?

I've been trying various ways of doing it from code I've found here and all I wind up with is a big mess. I only have a slight understanding of how it works, if that. Here's what I got so far (don't laugh... :) ):



$hourdiff = (date('Z', TIMENOW) / 3600 - $vbulletin->userinfo['timezoneoffset']) * 3600 ;

$timestamp = vbmktime(0, 0, 0, vbdate('m', TIMENOW, false, false), vbdate('d', TIMENOW, false, false), vbdate('Y', TIMENOW, false, false));
$t = $timestamp - $hourdiff;

$homedate = vbdate($vbulletin->options['dateformat'] . " " . $vbulletin->options['timeformat'], $t);



Am I close with anything in there?

Vaupell
03-16-2010, 09:10 AM
if the timestamp is the unix stamp as most common in php then.

http://php.net/manual/en/function.strftime.php

$timestamp = timenow(); <-- or get from vb database.
$format = '%Y/%b/%a - %T'

$displaytime = $strftime($format, $timestamp)
echo $displaytime;

TalkVirginia
03-16-2010, 03:35 PM
if the timestamp is the unix stamp as most common in php then.

http://php.net/manual/en/function.strftime.php

$timestamp = timenow(); <-- or get from vb database.
$format = '%Y/%b/%a - %T'

$displaytime = $strftime($format, $timestamp)
echo $displaytime;

Cool - Thanks for your suggestion! I'll give that a shot. I was interested in using built-in vb functionality though.

Vaupell
03-16-2010, 09:30 PM
ahh well im not sure about the default format from vbulletin
cause they dont follow the php standards where you include the %sign
maybe vbulletin add's it along the process of handling the date..

but if you want to acces vbulletins preset formats they can be reached via

$dateformat = $vbulletin->options['dateformat'];
$timeformat = $vbulletin->options['timeformat'];

But lucky vbulletin stores in default unix format,
which enables us to use the php standards to calculate time/date etc ;)
down to the secound..