遇到非格式正确的数值
2022-08-30 06:46:52
我有一个表单,它将两个日期(开始和结束)传递给PHP脚本,该脚本将把它们添加到数据库中。我在验证这一点时遇到问题。我不断收到以下错误
遇到非格式正确的数值
这是我使用以下内容时
date("d",$_GET['start_date']);
但是当我按照许多网站的建议使用strtotime()函数时,我得到的unix时间戳日期为1/1/1970。任何想法如何才能得到正确的日期?
我有一个表单,它将两个日期(开始和结束)传递给PHP脚本,该脚本将把它们添加到数据库中。我在验证这一点时遇到问题。我不断收到以下错误
遇到非格式正确的数值
这是我使用以下内容时
date("d",$_GET['start_date']);
但是当我按照许多网站的建议使用strtotime()函数时,我得到的unix时间戳日期为1/1/1970。任何想法如何才能得到正确的日期?
因为您要将字符串作为第二个参数传递给 date 函数,该函数应为整数。
字符串日期 ( 字符串 $format [, int $timestamp = time() ] )
尝试 strtotime,它将任何英文文本日期时间描述解析为 Unix 时间戳(整数):
date("d", strtotime($_GET['start_date']));
当您使用使用字母组合数字(字母数字)的变量执行计算时,会发生此错误,例如24kb,886ab ...
我在以下函数中遇到错误
function get_config_bytes($val) {
$val = trim($val);
$last = strtolower($val[strlen($val)-1]);
switch($last) {
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $this->fix_integer_overflow($val);
}
应用程序上传了图像,但它不起作用,它显示以下警告:
溶液:该函数使用字母数字数据提取变量的整数值,并创建一个具有相同值但使用该函数转换为整数的新变量。代码如下:intval()
intval()
function get_config_bytes($val) {
$val = trim($val);
$last = strtolower($val[strlen($val)-1]);
$intval = intval(trim($val));
switch($last) {
case 'g':
$intval *= 1024;
case 'm':
$intval *= 1024;
case 'k':
$intval *= 1024;
}
return $this->fix_integer_overflow($intval);
}
函数fix_integer_overflow
// Fix for overflowing signed 32 bit integers,
// works for sizes up to 2^32-1 bytes (4 GiB - 1):
protected function fix_integer_overflow($size) {
if ($size < 0) {
$size += 2.0 * (PHP_INT_MAX + 1);
}
return $size;
}