Answers:
因为您要将字符串作为第二个参数传递给date函数,所以它应该是整数。
字符串日期(字符串$ format [,int $ timestamp = time()])
尝试使用strtotime,它将任何英语文本日期时间描述解析为Unix时间戳(整数):
date("d", strtotime($_GET['start_date']));
public function __construct(int $someId....)
$_GET['start_date']
我的赌注不是数字,而是所不支持的日期格式strtotime
。您将需要将日期重新格式化为strtotime的可行格式,或结合使用explode / mktime。
如果您愿意发布当前收到的格式,我可以举个例子。
当您对使用字母和数字(字母数字)组合的变量执行计算时,会发生此错误,例如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);
}
这对我很有帮助-
$new_date = date_format(date_create($old_date), 'Y-m-d');
这是一个古老的问题,但是还有另一种微妙的方式可以发生此消息。在docs中对此进行了很好的解释。
想象一下这个场景:
try {
// code that triggers a pdo exception
} catch (Exception $e) {
throw new MyCustomExceptionHandler($e);
}
并MyCustomExceptionHandler
大致定义为:
class MyCustomExceptionHandler extends Exception {
public function __construct($e) {
parent::__construct($e->getMessage(), $e->getCode());
}
}
实际上,这将在自定义异常处理程序中触发新的异常,因为Exception
该类在其构造函数中期望第二个参数有一个数字,但PDOException
可能已将返回类型动态更改$e->getCode()
为字符串。
一种解决方法是定义自定义异常处理程序,例如:
class MyCustomExceptionHandler extends Exception {
public function __construct($e) {
parent::__construct($e->getMessage());
$this->code = $e->getCode();
}
}
$_GET['start_date']
包含的内容。