PHPExcel (高品質の PHP Excel 読み取りおよび書き込みライブラリ) を使用して Excel ファイルを処理する場合、通常、関連するビジネス処理のために Excel テーブル内の日付または時刻データを PHP タイムスタンプ形式に変換する必要があります。では、PHPExcel の日付と時刻を PHP タイムスタンプに変換するにはどうすればよいでしょうか?
まず、PHPExcel の時刻と日付の形式は Excel の内部的な「1900 年 1 月 1 日」に基づいており、日数で計算されることを知っておく必要があります。つまり、Excel の日付と PHP のタイムスタンプの間には時間オフセットがあります。 PHPExcel の公式ドキュメントを参照すると、次の計算式を得ることができます。
$timestamp = ($excelTime - 25569) * 86400;
このうち、$timestamp は PHP のタイムスタンプを表し、$excelTime は Excel の時刻形式を表します。 Excel の日付の開始点は 1900 年 1 月 1 日であるため、25569 は Excel の日付オフセットを表す定数です。これは、UNIX タイムスタンプの 1970 年 1 月 1 日から 25569 日繰り上げられたことに相当します。
次に、PHPExcel を使用して Excel テーブルの日付データを読み取り、上記の式を通じて PHP タイムスタンプ形式に変換します。コードは次のとおりです:
// 引入PHPExcel库 require_once 'PHPExcel.php'; require_once 'PHPExcel/IOFactory.php'; // 加载Excel文件 $excelFile = 'demo.xlsx'; $objReader = PHPExcel_IOFactory::createReader('Excel2007'); $objPHPExcel = $objReader->load($excelFile); // 获取活动sheet $sheet = $objPHPExcel->getActiveSheet(); // 日期单元格所在的行和列 $row = 1; $col = 'A'; // 读取日期单元格的值 $excelTime = $sheet->getCell($col.$row)->getValue(); // 计算PHP时间戳 $timestamp = ($excelTime - 25569) * 86400; echo 'Excel时间戳为:' . $excelTime . '<br>'; echo 'PHP时间戳为:' . $timestamp;
これが最初のコードです。 Excel を読み取る手順 行の 1 列目の日付セルを例として、セルの値を読み取り、上記の式で PHP のタイムスタンプを計算し、画面に出力します。このコードを関数にカプセル化して、プログラム内で複数回使用できるようにします。
function excelTimeToTimestamp($excelTime) { return ($excelTime - 25569) * 86400; }
注: Excel から読み取った時刻形式が「時、分、秒の日付時刻形式」の場合、中国の標準タイム ゾーンはグリニッジ標準タイム ゾーンより 8 時間進んでいるため、86400 を 86400 3600*8 に変更する必要があります。
最後に、PHPExcel の日付と時刻のデータを PHP タイムスタンプ形式に簡単に変換し、関連するビジネス処理を実行できるようになります。
以上がPHPExcelの日付と時刻をPHPタイムスタンプに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。