PHP和SQL中的日期格式错误

马库斯·巴内特(Marcus Barnet)

我在处理日期格式时遇到问题。在我的代码中,我尝试计算一个从指定日期开始的到期日期,然后将其保存在我的MySQL数据库中。

问题是我总是收到此错误:

致命错误:在非对象上调用成员函数add()

我无法解决。例如,如果我将$ scadenza_contratto手动替换为特定日期,则该方法有效,例如:

$expiration_date = DateTime::createFromFormat('Y-m-d', '2016-02-10');

在这种情况下,它可以工作,但是我需要从$ scadenza_contratto接收日期。你能帮我吗?这是我的代码:

if($anno > 0 && $giorno > 0 && $mese >0){
$scadenza_contratto = $anno."-".$mese."-".$giorno;
//$scadenza_contratto = date('Y-m-d', strtotime("+{$scadenze} months", strtotime($scadenza_contratto)));

$sql1 = "SELECT * FROM scadenze WHERE contratto_id=$contratti_id";

$row1 = mysql_fetch_assoc( mysql_query($sql1) );
echo "tipo ".$row1['tipo'];

 if(!$row1){

 for ($m = $scadenze; $m <=60 ; $m += $scadenze){
   //add $m to activation_date
   $scadenza_contratto = $anno."-".$mese."-".$giorno;
   $expiration_date = DateTime::createFromFormat('Y-m-d', '$scadenza_contratto');
   $expiration_date->add(new DateInterval('P'.$m.'M'));
   //do something with $expriration_date 
   echo "Expire: ".$expiration_date->format('Y-m-d'). "<br>";
   $expiration_db = $expiration_date->format('Y-m-d H:i:s');
   $time=time();

//mysql_query("INSERT INTO contratti (nome_area) VALUES('$nome_area','$giorno','$mese','$file_name','$attiva','$id_voce','$nome_azienda','$time')");
  mysql_query("INSERT INTO scadenze (nome_azienda,nome_voce,contratto_id,nome_area,scadenza,tipo,created_date) VALUES ('$nome_azienda','$nome_voce','$contratti_id','$nome_area','$expiration_db','$scadenze','$time')");

  } 

 }
}
马克·贝克

第一个问题:

$expiration_date = DateTime::createFromFormat('Y-m-d', '$scadenza_contratto');

您正在尝试将字符串文字'$scadenza_contratto'转换为日期,而不是字符串变量的值$scadenza_contratto

第二个问题是格式掩码,因为您将$mese的值$giorno视为整数,则它们的值可能小于10。并且您当前的掩码假设它们将始终是两位数字值(0如果小于10,则带有前导号),事实并非如此

更改为

$expiration_date = DateTime::createFromFormat('Y-n-j', $scadenza_contratto);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Smartbind日期格式和R中的错误

来自分类Dev

SQL Server中的列日期格式错误

来自分类Dev

PHP中的日期和格式问题

来自分类Dev

SQL查询中的PHP日期时间格式

来自分类Dev

日期和时间格式错误

来自分类Dev

错误的日期格式Oracle SQL

来自分类Dev

PHP格式日期显示错误

来自分类Dev

PHP以错误的格式捕获日期

来自分类Dev

日期格式返回错误的值和格式

来自分类Dev

从XML在SQL Server中解析错误的日期格式

来自分类Dev

从XML在SQL Server中解析错误的日期格式

来自分类Dev

PHP 日期格式和 strtotime

来自分类Dev

更改PHP中输出的日期和时间格式

来自分类Dev

在PHP中更改日期和时间格式[高级方式]

来自分类Dev

Java中的日期格式错误

来自分类Dev

swift中的日期格式错误

来自分类Dev

SQL,PHP:转换日期格式

来自分类Dev

javascript中的日期格式错误格式

来自分类Dev

SQL错误的日期,上传单独的日期和时间的正确格式是什么?

来自分类Dev

PHP中的日期时间格式

来自分类Dev

PHP MYSQL中的日期格式

来自分类Dev

PHP MYSQL中的日期格式

来自分类Dev

SQL Server,DATEDIFF错误,日期字段的格式?

来自分类Dev

如何以日期时间格式从PHP表单向MySQL表中输入日期和时间信息

来自分类Dev

PHP表格SQL格式错误

来自分类Dev

访问VBA和SQL日期格式

来自分类Dev

SQL日期格式和排序问题

来自分类Dev

带有日期的对象以错误的日期和格式保存

来自分类Dev

VB.net和SQL Server中的日期和时间格式