Ejemplo n.º 1
0
 /**
  * Set the Default Timezone used for date/time conversions
  *
  * @param     string $timezone Time zone (e.g. 'Europe/London')
  *
  * @return     boolean                        Success or failure
  */
 public static function setTimeZone($timezone)
 {
     if (self::_validateTimezone($timezone)) {
         self::$_timezone = $timezone;
         return true;
     }
     return false;
 }
Ejemplo n.º 2
0
 /**
  * Set the Default Timezone used for date/time conversions
  *
  * @param	 string		$timezone			Time zone (e.g. 'Europe/London')
  * @return	 boolean						Success or failure
  */
 public static function setTimeZone($timezone)
 {
     if (self::_validateTimezone($timezone)) {
         self::$_timezone = $timezone;
         return TRUE;
     }
     return FALSE;
 }
Ejemplo n.º 3
0
 /**
  *	Convert a date from Excel to PHP
  *
  *	@param		long		$dateValue			Excel date/time value
  *	@param		boolean		$adjustToTimezone	Flag indicating whether $dateValue should be treated as
  *													a UST timestamp, or adjusted to UST
  *	@param		string	 	$timezone			The timezone for finding the adjustment from UST
  *	@return		long		PHP serialized date/time
  */
 public static function ExcelToPHP($dateValue = 0, $adjustToTimezone = FALSE, $timezone = NULL)
 {
     if (self::$_excelBaseDate == self::CALENDAR_WINDOWS_1900) {
         $my_excelBaseDate = 25569;
         //	Adjust for the spurious 29-Feb-1900 (Day 60)
         if ($dateValue < 60) {
             --$my_excelBaseDate;
         }
     } else {
         $my_excelBaseDate = 24107;
     }
     // Perform conversion
     if ($dateValue >= 1) {
         $utcDays = $dateValue - $my_excelBaseDate;
         $returnValue = round($utcDays * 86400);
         if ($returnValue <= PHP_INT_MAX && $returnValue >= -PHP_INT_MAX) {
             $returnValue = (int) $returnValue;
         }
     } else {
         $hours = round($dateValue * 24);
         $mins = round($dateValue * 1440) - round($hours * 60);
         $secs = round($dateValue * 86400) - round($hours * 3600) - round($mins * 60);
         $returnValue = (int) gmmktime($hours, $mins, $secs);
     }
     $timezoneAdjustment = $adjustToTimezone ? PHPExcel_Shared_TimeZone::getTimezoneAdjustment($timezone, $returnValue) : 0;
     // Return
     return $returnValue + $timezoneAdjustment;
 }
Ejemplo n.º 4
0
 /**
  *    Convert a date from PHP to Excel
  *
  *    @param    mixed        $dateValue            PHP serialized date/time or date object
  *    @param    boolean        $adjustToTimezone    Flag indicating whether $dateValue should be treated as
  *                                                    a UST timestamp, or adjusted to UST
  *    @param    string         $timezone            The timezone for finding the adjustment from UST
  *    @return    mixed        Excel date/time value
  *                            or boolean FALSE on failure
  */
 public static function PHPToExcel($dateValue = 0, $adjustToTimezone = false, $timezone = null)
 {
     $saveTimeZone = date_default_timezone_get();
     date_default_timezone_set('UTC');
     $timezoneAdjustment = $adjustToTimezone ? PHPExcel_Shared_TimeZone::getTimezoneAdjustment($timezone ? $timezone : $saveTimeZone, $dateValue) : 0;
     $retValue = false;
     if (is_object($dateValue) && $dateValue instanceof \DateTime) {
         $dateValue->add(new \DateInterval('PT' . $timezoneAdjustment . 'S'));
         $retValue = self::formattedPHPToExcel($dateValue->format('Y'), $dateValue->format('m'), $dateValue->format('d'), $dateValue->format('H'), $dateValue->format('i'), $dateValue->format('s'));
     } elseif (is_numeric($dateValue)) {
         $dateValue += $timezoneAdjustment;
         $retValue = self::formattedPHPToExcel(date('Y', $dateValue), date('m', $dateValue), date('d', $dateValue), date('H', $dateValue), date('i', $dateValue), date('s', $dateValue));
     } elseif (is_string($dateValue)) {
         $retValue = self::stringToExcel($dateValue);
     }
     date_default_timezone_set($saveTimeZone);
     return $retValue;
 }