एक्सेल दिनांक मानों को आधार तिथि से दिनों की "वास्तविक" संख्या के रूप में रखता है, जो या तो 1 जनवरी 1900 (एक्सेल के विंडोज संस्करणों के लिए डिफ़ॉल्ट) या 1 जनवरी 1904 (एक्सेल के मैक संस्करणों के लिए डिफ़ॉल्ट) हो सकता है:समय है भिन्नात्मक भाग, इसलिए किसी भी तिथि को मध्याह्न मध्यरात्रि से 0.5 अधिक है। दुख में जोड़ने के लिए, फरवरी 29वीं 1900 विंडोज 1900 कैलेंडर के लिए एक मान्य तिथि है।
Windows 1900 कैलेंडर मानते हुए:
function ExcelToPHP($dateValue = 0) {
$myExcelBaseDate = 25569;
// Adjust for the spurious 29-Feb-1900 (Day 60)
if ($dateValue < 60) {
--$myExcelBaseDate;
}
// 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;
} // function ExcelToPHP()
अगर मैक 1904 बेस है, तो बदलें
$myExcelBaseDate = 25569;
// Adjust for the spurious 29-Feb-1900 (Day 60)
if ($dateValue < 60) {
--$myExcelBaseDate;
}
के साथ
$myExcelBaseDate = 24107;
यह एक PHP दिनांक/समय मान (मानक 1970 आधार तिथि) लौटाएगा, जिसे आप दिनांक (); का उपयोग करके अपनी इच्छानुसार प्रारूपित कर सकते हैं;