首页 > 解决方案 > 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

标签: php

解决方案


Excel 将时间表示为一天中的分数,因此要将 Excel 时间值转换为 PHP 时间字符串,您需要将其转换为秒,然后将其转换为日期/时间变量并输出其中的时间部分。例如

$timevalue = 0.35416666666667;
echo gmdate('H:i', $timevalue * 24 * 3600);

输出:

08:30

请注意,我们使用gmdate而不是date避免夏令时将小时调整为 1 的问题。

3v4l.org 上的演示


推荐阅读