php - PHP将浮点数作为时间返回?
问题描述
我想通过 PHP 将 excel 工作表值导入 MySQL 表。有时间列,excel中的值为8:30。当我将这个值传递给 PHP 时,它表示为 0.35416666666667,我正在使用 phpexcel library 。
$object = PHPExcel_IOFactory::load($_FILES["excel_file"]["tmp_name"]);
foreach ($object->getWorksheetIterator() as $worksheet){
$highestrow = $worksheet->getHighestRow();
for ($row=2; $row<=2; $row++)
{
echo $name = $worksheet->getCellByColumnAndRow(0,$row)->getValue();
}
}
我希望该值也在 PHP 中表示为 08:30:00
解决方案
Excel 将时间表示为一天中的分数,因此要将 Excel 时间值转换为 PHP 时间字符串,您需要将其转换为秒,然后将其转换为日期/时间变量并输出其中的时间部分。例如
$timevalue = 0.35416666666667;
echo gmdate('H:i', $timevalue * 24 * 3600);
输出:
08:30
请注意,我们使用gmdate
而不是date
避免夏令时将小时调整为 1 的问题。
推荐阅读
- oracle - 创建具有固定时间部分的时间戳
- sql - 数据仓库建模问题
- javascript - 使用 ReactJs 映射获取的对象时出错
- php - Laravel 8 - 创建虚拟数据时找不到模型工厂类
- bootstrap-4 - Bootstrap v4 媒体查询在 Chrome 开发工具设备工具中不起作用
- python - 如何通过python中的请求访问github API?
- php - Sublime Text Xdebug 不会在断点处停止
- ios - Web 表单可以访问 IOS 联系人备注部分以自动填充数据吗?
- c++ - 如何使用 boost 库反序列化和获取成员值
- azure-cosmosdb - 使用 readItems(queryString) 计算带有查询的项目