【问题标题】:Compare DateTime unix time stamp比较 DateTime unix 时间戳
【发布时间】:2017-11-14 18:10:54
【问题描述】:

我正在尝试将上一页的日期传递与存储在数据库中的日期(unix 时间戳格式)进行比较。我的代码如下。 错误:可恢复的致命错误:DateTime 类的对象无法在第 14 行的 C:\xampp\htdocs\check.php 中转换为字符串

我应该如何修改它以便能够与“datetime2”进行比较并存储为 10 位 unixtime。

基本上我不想将其转换为正常日期。只需按原样存储,10 位 unixtimestamp。

请帮助查看 foreach 循环。我想检查所选日期是否已出现在数据库中。

谢谢

<?PHP
	session_start();
	
	$userid = $_SESSION['userid'];
	$datetime = $_POST['datetime'];
	$available = 0;
		
	$date = $datetime; $datetime2 = new DateTime($date); echo $datetime2->getTimestamp();



	$con = mysqli_connect('localhost', 'root', 'abc123');

	$query = "SELECT COUNT * FROM reservation WHERE InstallDate='" . $datetime2 . "'";

   	 if (!$con)
      	{
     		die('Could not connect: ' . mysqli_error($con));
     	}


    	mysqli_select_db($con, 'btr');


    	foreach(mysqli_query($con, $query )as $row)
	{
		if($row <=1)
		{
			$available = 1;
			echo $available;
		}	
		
	}


    	mysqli_close($con);

?>

【问题讨论】:

  • 为什么不使用getTimestamp() 来节省价值?
  • 我不明白。
  • 您不想将其转换为日期,您只想使用 10 位字符串。但是,您所做的是从 10 位字符串开始,从中创建一个 DateTime 对象,然后将该 DateTime 对象传递给您的 SQL 查询。
  • 我应该如何修改这个:$query = "SELECT COUNT * FROM reservation WHERE InstallDate='$datetime2'";

标签: php mysql


【解决方案1】:

不要使用 DateTime 类的对象,而是尝试以适当的方式将其转换为字符串,如下所示:

$query =
"SELECT COUNT * FROM reservation WHERE InstallDate='"
.$datetime2->format('d/m/Y') 
."'";

同时为您的数据库调整d/m/Y 分隔符,例如MySQL 使用d.m.Y 分隔符。

【讨论】:

  • 如果直接与10位时间比较呢?可以这样存储和比较吗?
猜你喜欢
  • 2013-03-13
  • 2014-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-19
  • 2018-01-04
  • 2011-12-10
  • 2010-12-18
相关资源
最近更新 更多