本文整理汇总了PHP中w2p_Utilities_Date::addSpan方法的典型用法代码示例。如果您正苦于以下问题:PHP w2p_Utilities_Date::addSpan方法的具体用法?PHP w2p_Utilities_Date::addSpan怎么用?PHP w2p_Utilities_Date::addSpan使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类w2p_Utilities_Date
的用法示例。
在下文中一共展示了w2p_Utilities_Date::addSpan方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: clash_process
function clash_process(CAppUI $AppUI)
{
global $do_include;
$obj = new CEvent();
$obj->bind($_SESSION['add_event_post']);
$attendees = $_SESSION['add_event_attendees'];
$users = array();
if (isset($attendees) && $attendees) {
$users = explode(',', $attendees);
}
array_push($users, $obj->event_owner);
// First remove any duplicates
$users = array_unique($users);
// Now remove any null entries, so implode doesn't create a dud SQL
// Foreach is safer as it works on a copy of the array.
foreach ($users as $key => $user) {
if (!$user) {
unset($users[$key]);
}
}
$start_date = new w2p_Utilities_Date($_POST['event_start_date'] . "000000");
$end_date = new w2p_Utilities_Date($_POST['event_end_date'] . "235959");
// First find any events in the range requested.
$event_list = $obj->getEventsInWindow($start_date->format(FMT_DATETIME_MYSQL), $end_date->format(FMT_DATETIME_MYSQL), (int) ($_POST['start_time'] / 100), (int) ($_POST['end_time'] / 100), $users);
$event_start_date = new w2p_Utilities_Date($_POST['event_start_date'] . $_POST['start_time']);
$event_end_date = new w2p_Utilities_Date($_POST['event_end_date'] . $_POST['end_time']);
if (!$event_list || !count($event_list)) {
// First available date/time is OK, seed addEdit with the details.
$obj->event_start_date = $event_start_date->format(FMT_DATETIME_MYSQL);
$obj->event_end_date = $event_end_date->format(FMT_DATETIME_MYSQL);
$_SESSION['add_event_post'] = get_object_vars($obj);
$AppUI->setMsg('No clashes in suggested timespan', UI_MSG_OK);
$_SESSION['event_is_clash'] = true;
$_GET['event_id'] = $obj->event_id;
$do_include = W2P_BASE_DIR . "/modules/calendar/addedit.php";
return;
}
// Now we grab the events, in date order, and compare against the
// required start and end times.
// Working in 30 minute increments from the start time, and remembering
// the end time stipulation, find the first hole in the times.
// Determine the duration in hours/minutes.
$start_hour = (int) ($_POST['start_time'] / 10000);
$start_minutes = (int) ($_POST['start_time'] % 10000 / 100);
$start_time = $start_hour * 60 + $start_minutes;
$end_hour = (int) ($_POST['end_time'] / 10000);
$end_minutes = (int) ($_POST['end_time'] % 10000 / 100);
$end_time = $end_hour * 60 + $end_minutes - $_POST['duration'];
// First, build a set of "slots" that give us the duration
// and start/end times we need
$first_day = $start_date->format('%E');
$end_day = $end_date->format('%E');
$days_between = $end_day + 1 - $first_day;
$oneday = new Date_Span(array(1, 0, 0, 0));
$slots = array();
$slot_count = 0;
$first_date = new w2p_Utilities_Date($start_date);
for ($i = 0; $i < $days_between; $i++) {
if ($first_date->isWorkingDay()) {
$slots[$i] = array();
for ($j = $start_time; $j <= $end_time; $j += 30) {
$slot_count++;
$slots[$i][] = array('date' => $first_date->format('%Y-%m-%d'), 'start_time' => $j, 'end_time' => $j + $_POST['duration'], 'committed' => false);
}
}
$first_date->addSpan($oneday);
}
// Now process the events list
foreach ($event_list as $event) {
$sdate = new w2p_Utilities_Date($event['event_start_date']);
$edate = new w2p_Utilities_Date($event['event_end_date']);
$sday = $sdate->format('%E');
$day_offset = $sday - $first_day;
// Now find the slots on that day that match
list($syear, $smonth, $sday, $shour, $sminute, $ssecond) = sscanf($event['event_start_date'], "%4d-%2d-%2d %2d:%2d:%2d");
list($eyear, $emonth, $eday, $ehour, $eminute, $esecond) = sscanf($event['event_start_date'], "%4d-%2d-%2d %2d:%2d:%2d");
$start_mins = $shour * 60 + $sminute;
$end_mins = $ehour * 60 + $eminute;
if (isset($slots[$day_offset])) {
foreach ($slots[$day_offset] as $key => $slot) {
if ($start_mins <= $slot['end_time'] && $end_mins >= $slot['start_time']) {
$slots[$day_offset][$key]['committed'] = true;
}
}
}
}
// Third pass through, find the first uncommitted slot;
foreach ($slots as $day_offset => $day_slot) {
foreach ($day_slot as $slot) {
if (!$slot['committed']) {
$hour = (int) ($slot['start_time'] / 60);
$min = $slot['start_time'] % 60;
$ehour = (int) ($slot['end_time'] / 60);
$emin = $slot['end_time'] % 60;
$obj->event_start_date = $slot['date'] . ' ' . sprintf("%02d:%02d:00", $hour, $min);
$obj->event_end_date = $slot['date'] . ' ' . sprintf("%02d:%02d:00", $ehour, $emin);
$_SESSION['add_event_post'] = get_object_vars($obj);
$AppUI->setMsg('First available time slot', UI_MSG_OK);
$_SESSION['event_is_clash'] = true;
$_GET['event_id'] = $obj->event_id;
//.........这里部分代码省略.........
示例2: Cezpdf
$pname = $AppUI->_('All Projects');
}
if ($err = db_error()) {
$AppUI->setMsg($err, UI_MSG_ERROR);
$AppUI->redirect();
}
$font_dir = W2P_BASE_DIR . '/lib/ezpdf/fonts';
require $AppUI->getLibraryClass('ezpdf/class.ezpdf');
$pdf = new Cezpdf($paper = 'A4', $orientation = 'landscape');
$pdf->ezSetCmMargins(1, 2, 1.5, 1.5);
$pdf->selectFont($font_dir . '/Helvetica.afm');
$pdf->ezText(utf8_decode(w2PgetConfig('company_name')), 12);
$date = new w2p_Utilities_Date();
$pdf->ezText("\n" . $date->format($df), 8);
$next_week = new w2p_Utilities_Date($date);
$next_week->addSpan(new Date_Span(array(7, 0, 0, 0)));
$pdf->selectFont($font_dir . '/Helvetica-Bold.afm');
$pdf->ezText("\n" . $AppUI->_('Project Overdue Task Report'), 12);
$pdf->ezText(utf8_decode($pname), 15);
$pdf->ezText("\n");
$pdf->selectFont($font_dir . '/Helvetica.afm');
$title = null;
$options = array('showLines' => 2, 'showHeadings' => 1, 'fontSize' => 9, 'rowGap' => 4, 'colGap' => 5, 'xPos' => 50, 'xOrientation' => 'right', 'width' => '750', 'shaded' => 0, 'cols' => array(0 => array('justification' => 'left', 'width' => 250), 1 => array('justification' => 'left', 'width' => 120), 2 => array('justification' => 'center', 'width' => 120), 3 => array('justification' => 'center', 'width' => 75), 4 => array('justification' => 'center', 'width' => 75)));
$hasResources = $AppUI->isActiveModule('resources');
$perms =& $AppUI->acl();
if ($hasResources) {
$hasResources = canView('resources');
}
// Build the data to go into the table.
$pdfdata = array();
$columns = array();
示例3: getRecurrentEventforPeriod
/**
* Calculating if an recurrent date is in the given period
* @param Date Start date of the period
* @param Date End date of the period
* @param Date Start date of the Date Object
* @param Date End date of the Date Object
* @param integer Type of Recurrence
* @param integer Times of Recurrence
* @param integer Time of Recurrence
* @return array Calculated Start and End Dates for the recurrent Event for the given Period
*/
public function getRecurrentEventforPeriod($start_date, $end_date, $event_start_date, $event_end_date, $event_recurs, $event_times_recuring, $j)
{
//this array will be returned
$transferredEvent = array();
//create Date Objects for Event Start and Event End
$eventStart = new w2p_Utilities_Date($event_start_date);
$eventEnd = new w2p_Utilities_Date($event_end_date);
//Time of Recurence = 0 (first occurence of event) has to be checked, too.
if ($j > 0) {
switch ($event_recurs) {
case 1:
$eventStart->addSpan(new Date_Span(3600 * $j));
$eventEnd->addSpan(new Date_Span(3600 * $j));
break;
case 2:
$eventStart->addDays($j);
$eventEnd->addDays($j);
break;
case 3:
$eventStart->addDays(7 * $j);
$eventEnd->addDays(7 * $j);
break;
case 4:
$eventStart->addDays(14 * $j);
$eventEnd->addDays(14 * $j);
break;
case 5:
$eventStart->addMonths($j);
$eventEnd->addMonths($j);
break;
case 6:
$eventStart->addMonths(3 * $j);
$eventEnd->addMonths(3 * $j);
break;
case 7:
$eventStart->addMonths(6 * $j);
$eventEnd->addMonths(6 * $j);
break;
case 8:
$eventStart->addMonths(12 * $j);
$eventEnd->addMonths(12 * $j);
break;
default:
break;
}
}
if ($start_date->compare($start_date, $eventStart) <= 0 && $end_date->compare($end_date, $eventEnd) >= 0) {
// add temporarily moved Event Start and End dates to returnArray
$transferredEvent = array($eventStart, $eventEnd);
}
// return array with event start and end dates for given period (positive case)
// or an empty array (negative case)
return $transferredEvent;
}
示例4: strtok
$sign = +1;
} else {
$sign = -1;
}
$day_word = strtok(' ');
if ($day_word == $AppUI->_('Day')) {
$days = $period_value;
} elseif ($day_word == $AppUI->_('Week')) {
$days = 7 * $period_value;
} elseif ($day_word == $AppUI->_('Month')) {
$days = 30 * $period_value;
}
$start_date = new w2p_Utilities_Date($ts);
$end_date = new w2p_Utilities_Date($ts);
if ($sign > 0) {
$end_date->addSpan(new Date_Span(array($days, 0, 0, 0)));
} else {
$start_date->subtractSpan(new Date_Span(array($days, 0, 0, 0)));
}
$do_report = 1;
} else {
// create Date objects from the datetime fields
$start_date = intval($log_start_date) ? new w2p_Utilities_Date($log_start_date) : new w2p_Utilities_Date();
$end_date = intval($log_end_date) ? new w2p_Utilities_Date($log_end_date) : new w2p_Utilities_Date();
}
if (!$log_start_date) {
$start_date->subtractSpan(new Date_Span('14,0,0,0'));
}
$end_date->setTime(23, 59, 59);
if (function_exists('styleRenderBoxTop')) {
echo styleRenderBoxTop();
示例5: strtok
$sign = +1;
} else {
$sign = -1;
}
$day_word = strtok(' ');
if ($day_word == $AppUI->_('Day')) {
$days = $period_value;
} elseif ($day_word == $AppUI->_('Week')) {
$days = 7 * $period_value;
} elseif ($day_word == $AppUI->_('Month')) {
$days = 30 * $period_value;
}
$start_date = new w2p_Utilities_Date($ts);
$end_date = new w2p_Utilities_Date($ts);
if ($sign > 0) {
$end_date->addSpan(new Date_Span("{$days},0,0,0"));
} else {
$start_date->subtractSpan(new Date_Span("{$days},0,0,0"));
}
$do_report = 1;
} else {
// create Date objects from the datetime fields
$start_date = intval($list_start_date) ? new w2p_Utilities_Date($list_start_date) : new w2p_Utilities_Date();
$end_date = intval($list_end_date) ? new w2p_Utilities_Date($list_end_date) : new w2p_Utilities_Date();
}
if (!$list_start_date) {
$start_date->subtractSpan(new Date_Span('14,0,0,0'));
}
$end_date->setTime(23, 59, 59);
if (function_exists('styleRenderBoxTop')) {
echo styleRenderBoxTop();