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
Date / Time Manipulation
Moderator: General Moderators
-
koolsamule
- Forum Contributor
- Posts: 130
- Joined: Fri Sep 25, 2009 10:03 am
- AbraCadaver
- DevNet Master
- Posts: 2572
- Joined: Mon Feb 24, 2003 10:12 am
- Location: The Republic of Texas
- Contact:
Re: Date / Time Manipulation
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
sweet, cheers dude, managed to play around with the code to get something that does the trick very nice!