遇到的格式不正确
我有一个表单将两个date(开始和结束)传递给一个将脚本添加到数据库的PHP脚本。 我有问题validation这一点。 我不断收到以下错误
遇到的格式不正确
这是当我使用以下
date("d",$_GET['start_date']);
但是,当我使用strtotime()函数build议由许多网站我得到一个Unix时间戳date1/1/1970。 任何想法如何我可以得到正确的date?
这可能是因为您将string作为第二个parameter passing给date函数。 尝试strtotime :
date("d",strtotime($_GET['start_date']));
$_GET['start_date']
不是数字是我的赌注,但strtotime
不支持的date格式。 您需要将date重新格式化为适合的时间格式,或使用explode / mktime的组合。
如果您愿意发布您目前收到的格式,我可以添加一个例子。
我遇到了同样的情况(在我的情况下,在Drupal视图中的自定义PHP字段中的date值),而对我而言,使用intval而不是strtotime将值转换为整数 – 因为它基本上是一个时间戳,而是以一个string的forms而不是一个整数。 显然这不是每个人的情况,但可能值得一试。
只要你可以使用strtotime()
函数来解决这个问题。
date("d",strtotime($_GET['start_date']));
这是一个古老的问题,但是这个消息还有另一个微妙的方式。 这里解释得很好,在文档中 。
想象一下这个场景:
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处理程序中触发一个新的exception,因为Exception
类在构造函数中需要一个第二个参数的数字,但是PDOException
可能会dynamic地将$e->getCode()
的返回types更改为一个string。
解决这个问题的办法是定义你自定义的exception处理程序,如:
class MyCustomExceptionHandler extends Exception { public function __construct($e) { parent::__construct($e->getMessage()); $this->code = $e->getCode(); } }
这帮了我很多 –
$new_date = date_format(date_create($old_date), 'Ym-d');