我知道之前有人问过这个问题,但我已经尝试了我发现的建议解决方案,但没有任何效果。所以,这里是:
我有一个包含 2 个日期字段 sDate 和 eDate 的 mySQL 数据库。这些字段属于“日期”类型,通过 HTML 表单输入,该表单的输入也是“日期”类型。我想要做的是找出今天的日期是否在这两个日期之间,包括两个日期。
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.view.KeyEvent;
import android.widget.Toast;
public class BtnAction extends BroadcastReceiver {
public BtnAction() {
super();
}
@Override
public void onReceive(Context context, Intent intent) {
String intentAction = intent.getAction();
if (!Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) {
return;
}
KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event == null) {
return;
}
int action = event.getAction();
if (action == KeyEvent.ACTION_DOWN) {
// do something
Toast.makeText(context, "BUTTON PRESSED!", Toast.LENGTH_SHORT).show();
}
abortBroadcast();
}
}
我得到的错误是:
<块引用>致命错误:未捕获的错误:类 DateTime 的对象无法在 /home/peaceful/www/www/kokr/pages/cal.php:13 中转换为字符串堆栈跟踪:#0 {main} 抛出在 /home /peaceful/www/www/kokr/pages/cal.php 第 13 行
第 13 行是 foreach。我也尝试过其他几种方法,但它们都抛出错误。我真的很想在这方面坚持直接使用 PHP。谁能告诉我我做错了什么?
答案 0 :(得分:1)
您需要 $tdy
表示的日期的 string 表示。只需使用 DateTime::format()
即可获取有效的日期字符串。
假设您的日期是 YYYY-MM-DD 格式:
$tdy = (new DateTime(null, new DateTimeZone('America/Chicago')))->format('Y-m-d');
我还会提到,正如评论中所指出的,您需要在 SQL 中将字符串括在引号中:
$conn->query("SELECT * FROM $table WHERE sDate <= '$tdy' AND eDate >= '$tdy'")