将Excel的“41014”日期转换为PHP或JavaScript中的实际日期
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了将Excel的“41014”日期转换为PHP或JavaScript中的实际日期,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2368字,纯文字阅读大概需要4分钟。
内容图文
![将Excel的“41014”日期转换为PHP或JavaScript中的实际日期](/upload/InfoBanner/zyjiaocheng/795/7383120bdd9a452ca49a1a19791653b9.jpg)
我在PHP / Jquery中编写了一些内容,允许用户从Excel上传Excel电子表格.然后它获取该电子表格中的数据并将每个单元格的值分配给变量,但由于某种原因,我在日期方面遇到了困难. Excel中的任何日期都以数字形式出现,如41014,而不是04/15/2012(就像我在Excel中将其格式化为文本一样).
如何将其转换为YYYY-MM-DD格式,以便它适合我正在使用的mySQL数据库的其余部分?我可以在PHP或Jquery中做到这一点,但在jQuery中这样做对我来说似乎更容易.
Excel的细胞
04/15/2012
PHP的echo json_encode($var);
`{dateReceived: 41014}`
jQuery的console.log(dateReceived);
41014
更新
我实际上无法得到这里提供的任何一个答案 – 我认为PHP的答案最初有效,但由于某种原因我无法得到它输出我需要的东西,但我发现另一个简单的公式我放入功能.如果其他人正在寻找类似问题的答案,这就是我所做的:,(其中$dateValue是Excel Date 41014等…)
function convertDate($dateValue) {
$unixDate = ($dateValue - 25569) * 86400;
return gmdate("Y-m-d", $unixDate);
'where Y is YYYY, m is MM, and d is DD
}
解决方法:
直接从PHPExcel日期处理代码中获取:
public static function ExcelToPHP($dateValue = 0) {
if (self::$ExcelBaseDate == self::CALENDAR_WINDOWS_1900) {
$myExcelBaseDate = 25569;
// Adjust for the 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;
} // function ExcelToPHP()
根据需要设置self :: $ExcelBaseDate == self :: CALENDAR_WINDOWS_1900以指示您正在使用的Excel基本日历:Windows 1900或Mac 1904 …很可能是1900
如果你想要一个PHP DateTime对象:
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;
} // function ExcelToPHPObject()
内容总结
以上是互联网集市为您收集整理的将Excel的“41014”日期转换为PHP或JavaScript中的实际日期全部内容,希望文章能够帮你解决将Excel的“41014”日期转换为PHP或JavaScript中的实际日期所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。