How to convert custome value in excel to date value or text value with PHP -


i have excel sheet "custom" field present formula

[$-14009]dd-mm-yyyy hh:mm:ss   

for holding date value. when import excel mysql, value converted general value 41841.203275. please give suggestion how convert excel value mysql value.

that value ms excel serialized timestamp, number of days since 1-jan-1900 (or 1-jan-1904 if using excel mac calendar).

i don't know how you're reading spreadsheet, (taken directly phpexcel date handling code):

public static function exceltophp($datevalue = 0) {     if (self::$excelbasedate == self::calendar_windows_1900) {         $myexcelbasedate = 25569;         //    adjust spurious 29-feb-1900 (day 60)         if ($datevalue < 60) {             --$myexcelbasedate;         }     } else {         $myexcelbasedate = 24107;     }      // perform conversion     if ($datevalue >= 1) {         $utcdays = $datevalue - $myexcelbasedate;         $returnvalue = round($utcdays * 86400);         if (($returnvalue <= php_int_max) && ($returnvalue >= -php_int_max)) {             $returnvalue = (integer) $returnvalue;         }     } else {         $hours = round($datevalue * 24);         $mins = round($datevalue * 1440) - round($hours * 60);         $secs = round($datevalue * 86400) - round($hours * 3600) - round($mins * 60);         $returnvalue = (integer) gmmktime($hours, $mins, $secs);     }      // return     return $returnvalue; } 

set self::$excelbasedate == self::calendar_windows_1900 necessary indicate excel base calendar you're using: windows 1900 or mac 1904

you have unix timestamp value can use of php's date functions

and if want php datetime object instead:

public static function exceltophpobject($datevalue = 0) {     $datetime = self::exceltophp($datevalue);     $days = floor($datetime / 86400);     $time = round((($datetime / 86400) - $days) * 86400);     $hours = round($time / 3600);     $minutes = round($time / 60) - ($hours * 60);     $seconds = round($time) - ($hours * 3600) - ($minutes * 60);      $dateobj = date_create('1-jan-1970+'.$days.' days');     $dateobj->settime($hours,$minutes,$seconds);      return $dateobj; } 

Comments

Popular posts from this blog

Magento/PHP - Get phones on all members in a customer group -

php - .htaccess mod_rewrite for dynamic url which has domain names -

Website Login Issue developed in magento -