我有一个表单,它将两个日期(开始和结束)传递给PHP脚本,该脚本将这些日期添加到数据库中。我在验证时遇到了问题。我一直收到以下错误
遇到了格式不正确的数值
这就是我使用以下代码的时候
date("d",$_GET['start_date']);
但是,当我按照许多站点的建议使用unix strtotime()函数时,我得到的时间戳日期是1/1/1970。你知道怎样才能得到正确的日期吗?
发布于 2012-10-03 21:25:32
因为您要将一个字符串作为第二个参数传递给date函数,它应该是一个整数。
string date ( string $format,int $timestamp = time() )
试试strtotime,它会将任何英文文本日期时间描述解析为Unix时间戳(整数):
date("d", strtotime($_GET['start_date']));
发布于 2011-05-26 17:34:46
发布于 2019-09-15 01:59:08
当您使用字母和数字(字母数字)组合的变量执行计算时,会出现此错误,例如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;
}
https://stackoverflow.com/questions/6136430
复制相似问题