[英]Comparing dates php/phpExcel
我從Excel文件中獲取日期值,並且將其更改為這樣的日期
$dateEx = $sheet->getCellByColumnAndRow(2,$line)->getValue();
$date = date('Ymd',($dateEx - 25569)*24*60*60);
我還有2個將String轉換為date的日期時間
$dateOuverture = '20150306';
$dateFerm = '20150906';
$dateOuverture = new Datetime($dateOuverture);
$dateOuverture = $dateOuverture->format('Ymd');
$dateFerm = new Datetime($dateFerm);
$dateFerm = $dateFerm->format('Ymd');
當我想將日期與是否比較不起作用時
if($date<=$dateFerm && $date>=$dateOuverture){
echo "Im in the if";
}
我怎么了
感謝幫助
從excel我得到像這樣的數字42164.536761227而不是日期
這些數字是MS Excel序列化的時間戳記值
這就是為什么PHPExcel提供在MS Excel序列化的時間戳值與PHP DateTime對象或Unix時間戳之間進行轉換的功能(反之亦然)的原因
$dateTimeObject = PHPExcel_Shared_Date::ExcelToPHP(42164.536761227);
echo $dateTimeObject->format('Y-m-d H:i:s');
要么
$unixTimestamp = PHPExcel_Shared_Date::ExcelToPHP(42164.536761227);
echo date('Y-m-d H:i:s', $unixTimestamp);
然后,您可以使用標准PHP函數進行任何比較
PHP日期函數接受時間戳作為第二個參數,不能使用ISO8601日期格式。 Strtotime確實接受,並返回有效的時間戳。 像這樣結合兩個:
$dateEx = $sheet->getCellByColumnAndRow(2,$line)->getValue();
$iso8601Date = ($dateEx - 25569)*24*60*60;
$date = new DateTime($iso8601Date);
有關日期格式的更多信息,請參見此鏈接
比較DateTime對象
$dateOuverture = '20150306';
$dateFerm = '20150906';
$dateOuverture = new Datetime($dateOuverture);
$dateFerm = new Datetime($dateFerm);
if($date<=$dateFerm && $date>=$dateOuverture){
echo "Im in the if";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.