You are here

public static function PHPExcel_Shared_OLE::LocalDate2OLE in Loft Data Grids 7.2

Same name and namespace in other branches
  1. 6.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE.php \PHPExcel_Shared_OLE::LocalDate2OLE()

* Utility function * Returns a string for the OLE container with the date given * * @access public * @static *

Parameters

integer $date A timestamp: * @return string The string for the OLE container

2 calls to PHPExcel_Shared_OLE::LocalDate2OLE()
PHPExcel_Shared_OLE_PPS::_getPpsWk in vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE/PPS.php
* Returns a string with the PPS's WK (What is a WK?) * * @access public *
PHPExcel_Writer_Excel5::_writeSummaryInformation in vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5.php
* Build the OLE Part for Summary Information *

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLE.php, line 464

Class

PHPExcel_Shared_OLE
OLE package base class.

Code

public static function LocalDate2OLE($date = null) {
  if (!isset($date)) {
    return "\0\0\0\0\0\0\0\0";
  }

  // factor used for separating numbers into 4 bytes parts
  $factor = pow(2, 32);

  // days from 1-1-1601 until the beggining of UNIX era
  $days = 134774;

  // calculate seconds
  $big_date = $days * 24 * 3600 + gmmktime(date("H", $date), date("i", $date), date("s", $date), date("m", $date), date("d", $date), date("Y", $date));

  // multiply just to make MS happy
  $big_date *= 10000000;
  $high_part = floor($big_date / $factor);

  // lower 4 bytes
  $low_part = floor(($big_date / $factor - $high_part) * $factor);

  // Make HEX string
  $res = '';
  for ($i = 0; $i < 4; ++$i) {
    $hex = $low_part % 0x100;
    $res .= pack('c', $hex);
    $low_part /= 0x100;
  }
  for ($i = 0; $i < 4; ++$i) {
    $hex = $high_part % 0x100;
    $res .= pack('c', $hex);
    $high_part /= 0x100;
  }
  return $res;
}