Minor bugfixes for date/time edge cases
This commit is contained in:
parent
d9cda3f287
commit
caad6b1956
|
@ -1071,7 +1071,9 @@ class PHPExcel_Calculation_DateTime {
|
||||||
public static function DAYOFMONTH($dateValue = 1) {
|
public static function DAYOFMONTH($dateValue = 1) {
|
||||||
$dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue);
|
$dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue);
|
||||||
|
|
||||||
if (is_string($dateValue = self::_getDateValue($dateValue))) {
|
if ($dateValue === null) {
|
||||||
|
$dateValue = 1;
|
||||||
|
} elseif (is_string($dateValue = self::_getDateValue($dateValue))) {
|
||||||
return PHPExcel_Calculation_Functions::VALUE();
|
return PHPExcel_Calculation_Functions::VALUE();
|
||||||
} elseif ($dateValue == 0.0) {
|
} elseif ($dateValue == 0.0) {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1114,7 +1116,9 @@ class PHPExcel_Calculation_DateTime {
|
||||||
}
|
}
|
||||||
$style = floor($style);
|
$style = floor($style);
|
||||||
|
|
||||||
if (is_string($dateValue = self::_getDateValue($dateValue))) {
|
if ($dateValue === null) {
|
||||||
|
$dateValue = 1;
|
||||||
|
} elseif (is_string($dateValue = self::_getDateValue($dateValue))) {
|
||||||
return PHPExcel_Calculation_Functions::VALUE();
|
return PHPExcel_Calculation_Functions::VALUE();
|
||||||
} elseif ($dateValue < 0.0) {
|
} elseif ($dateValue < 0.0) {
|
||||||
return PHPExcel_Calculation_Functions::NaN();
|
return PHPExcel_Calculation_Functions::NaN();
|
||||||
|
@ -1180,7 +1184,9 @@ class PHPExcel_Calculation_DateTime {
|
||||||
}
|
}
|
||||||
$method = floor($method);
|
$method = floor($method);
|
||||||
|
|
||||||
if (is_string($dateValue = self::_getDateValue($dateValue))) {
|
if ($dateValue === null) {
|
||||||
|
$dateValue = 1;
|
||||||
|
} elseif (is_string($dateValue = self::_getDateValue($dateValue))) {
|
||||||
return PHPExcel_Calculation_Functions::VALUE();
|
return PHPExcel_Calculation_Functions::VALUE();
|
||||||
} elseif ($dateValue < 0.0) {
|
} elseif ($dateValue < 0.0) {
|
||||||
return PHPExcel_Calculation_Functions::NaN();
|
return PHPExcel_Calculation_Functions::NaN();
|
||||||
|
@ -1216,7 +1222,9 @@ class PHPExcel_Calculation_DateTime {
|
||||||
public static function MONTHOFYEAR($dateValue = 1) {
|
public static function MONTHOFYEAR($dateValue = 1) {
|
||||||
$dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue);
|
$dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue);
|
||||||
|
|
||||||
if (is_string($dateValue = self::_getDateValue($dateValue))) {
|
if ($dateValue === null) {
|
||||||
|
$dateValue = 1;
|
||||||
|
} elseif (is_string($dateValue = self::_getDateValue($dateValue))) {
|
||||||
return PHPExcel_Calculation_Functions::VALUE();
|
return PHPExcel_Calculation_Functions::VALUE();
|
||||||
} elseif ($dateValue < 0.0) {
|
} elseif ($dateValue < 0.0) {
|
||||||
return PHPExcel_Calculation_Functions::NaN();
|
return PHPExcel_Calculation_Functions::NaN();
|
||||||
|
@ -1245,7 +1253,9 @@ class PHPExcel_Calculation_DateTime {
|
||||||
public static function YEAR($dateValue = 1) {
|
public static function YEAR($dateValue = 1) {
|
||||||
$dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue);
|
$dateValue = PHPExcel_Calculation_Functions::flattenSingleValue($dateValue);
|
||||||
|
|
||||||
if (is_string($dateValue = self::_getDateValue($dateValue))) {
|
if ($dateValue === null) {
|
||||||
|
$dateValue = 1;
|
||||||
|
} elseif (is_string($dateValue = self::_getDateValue($dateValue))) {
|
||||||
return PHPExcel_Calculation_Functions::VALUE();
|
return PHPExcel_Calculation_Functions::VALUE();
|
||||||
} elseif ($dateValue < 0.0) {
|
} elseif ($dateValue < 0.0) {
|
||||||
return PHPExcel_Calculation_Functions::NaN();
|
return PHPExcel_Calculation_Functions::NaN();
|
||||||
|
|
Loading…
Reference in New Issue