ホームページ  >  記事  >  バックエンド開発  >  PHPExcelの日付と時刻をPHPタイムスタンプに変換する方法

PHPExcelの日付と時刻をPHPタイムスタンプに変換する方法

PHPz
PHPzオリジナル
2023-03-29 11:31:431264ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。