From f38e760c396af1a9617764fb85c03abb8637001a Mon Sep 17 00:00:00 2001 From: Rasmus Lerdorf Date: Wed, 14 Jun 2000 20:31:31 +0000 Subject: [PATCH] Refine checkdate() fix to accept numeric strings and floating point as well --- ext/standard/datetime.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ext/standard/datetime.c b/ext/standard/datetime.c index b856480c0d..30f0aa7778 100644 --- a/ext/standard/datetime.c +++ b/ext/standard/datetime.c @@ -595,14 +595,18 @@ char *php_std_date(time_t t) PHP_FUNCTION(checkdate) { pval **month, **day, **year; - int m, d, y; + int m, d, y, res=0; if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &month, &day, &year) == FAILURE) { WRONG_PARAM_COUNT; } - if((*year)->type != IS_LONG) { - RETURN_FALSE; + + if((*year)->type == IS_STRING) { + res = is_numeric_string((*year)->value.str.val, (*year)->value.str.len, NULL, NULL); + if(res!=IS_LONG && res !=IS_DOUBLE) { + RETURN_FALSE; + } } convert_to_long_ex(day); convert_to_long_ex(month); -- 2.40.0