Date / Time Manipulation

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
koolsamule
Forum Contributor
Posts: 130
Joined: Fri Sep 25, 2009 10:03 am

Date / Time Manipulation

Post by koolsamule »

Hi Chaps,
I have some basic code that takes a UNIX time, adds a pre-calulated duration, to give a 'due date/time'.
I then convert the UNIX time to [Y-m-d H:i:s] format for presentation.
The problem I'm having at the moment is that the due date/time can be something like 2010-05-12 23:55:10. This time is outside of normal working hours, I need to insure the due date/time falls between 09:00 - 17:30 (Mon-Fri).
So if the start time is: 16:00 and the duration is: 5 hours, firstly I need the time to 'carry over' to the next day, starting from 09:00, and secondly, if the next day is a weekend, carry over to the next working day. . . . .
Can anyone point me in the right direction?
Cheers
User avatar
AbraCadaver
DevNet Master
Posts: 2572
Joined: Mon Feb 24, 2003 10:12 am
Location: The Republic of Texas
Contact:

Re: Date / Time Manipulation

Post by AbraCadaver »

This is very rough and can be improved, but as an example:

Code: Select all

$start = strtotime('2010-06-04 16:55:10');
$duration = 500;

if(date('Hi', $start) + $duration > 1730) {
	$first_hours = 1730 - date('Hi', $start);
	$next_hours = $duration - $first_hours;
	$next_time = date('H:i', strtotime(900 + $next_hours));
	$due_date = strtotime("next day $next_time", $start);
}
if(date('N', $due_date) > 5) {
	$due_date = strtotime("next monday $next_time", $start);
}
echo date('Y-m-d H:i:s', $due_date);
mysql_function(): WARNING: This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQLextension should be used. See also MySQL: choosing an API guide and related FAQ for more information.
koolsamule
Forum Contributor
Posts: 130
Joined: Fri Sep 25, 2009 10:03 am

Re: Date / Time Manipulation

Post by koolsamule »

sweet, cheers dude, managed to play around with the code to get something that does the trick very nice!
Post Reply