Jump to content


Photo

Need help with date - time function


  • Please log in to reply
1 reply to this topic

#1 davidude

davidude
  • New Members
  • Pip
  • Newbie
  • 2 posts

Posted 03 March 2006 - 11:36 PM

I need to make a php file that takes a date/time in variables like:

$userdate = “5/3/06” (This format is not set, I can change it if needs be.)
$usertime = “6” (hours. Maybe 1 to 24 as possible values)

And check the current date and time. Then compare the two and echo the difference in hours and mins.

Example: 104Hours and 45mins. (Between the current time and the user time)

This is above my head as far as the date() function goes… But maybe someone out there who is go with this sort of thing could help me. I would really appreciate it! Thanks.



Oh, ya. I found this entry by “skee”
[!--quoteo--][div class=\'quotetop\']QUOTE[/div][div class=\'quotemain\'][!--quotec--]
$now = time();
$then = mktime(0,0,0,11,1,1984);
$diff = $now - $then;

Returns the difference (in seconds) between now and November first, 1984. The result can then be parsed through a number of functions.
[/quote]

#2 davidude

davidude
  • New Members
  • Pip
  • Newbie
  • 2 posts

Posted 04 March 2006 - 12:50 AM


Here is something I found (and changed) that outputs the difference, something like "272 days 17 hours 33 mins". Hope ya'll can use it!

<?php

$current_date = date("Y-m-d");
$current_time = date("h:i:s");
$user_date = "2006-12-1";
$user_time = "1:00:00";

function unix_diff($first_date,$first_time,$second_date,$second_time)
{

   // Author: Tone.
   // edited by Davidude
   // Date    : 15-12-2003.
  
   // Ref: Dates go in "2003-12-31".
   // Ref: Times go in "12:59:13".
   // Ref: mktime(HOUR,MIN,SEC,MONTH,DAY,YEAR).
  
   // Splits the dates into parts, to be reformatted for mktime.
   $first_date_ex = explode("-",$first_date);
   $first_time_ex = explode(":",$first_time);
   $second_date_ex = explode("-",$second_date);
   $second_time_ex = explode(":",$second_time);
  
   // makes the dates and times into unix timestamps.
   $first_unix  = mktime($first_time_ex[0], $first_time_ex[1], $first_time_ex[2], $first_date_ex[1], $first_date_ex[2], $first_date_ex[0]);
   $second_unix  = mktime($second_time_ex[0], $second_time_ex[1], $second_time_ex[2], $second_date_ex[1], $second_date_ex[2], $second_date_ex[0]);

   // Gets the difference between the two unix timestamps.
   $timediff = $first_unix-$second_unix;
              
   // Works out the days, hours, mins and secs.
   $days=intval($timediff/86400);
   $remain=$timediff%86400;
   $hours=intval($remain/3600);
   $remain=$remain%3600;
   $mins=intval($remain/60);
   $secs=$remain%60;

   // Returns a pre-formatted string. Can be chagned to an array.
   return $days . " days " . $hours . " hours " . $mins . " mins";
} 

$diff = unix_diff($current_date,$current_time,$user_date,$user_time);
$diff = str_replace("-", "", $diff);

echo $diff;

?>





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users