确定今天的日期是否在 2 个数据库日期之间

时间:2021-02-23 15:50:01

标签: php date mysqli

我知道之前有人问过这个问题,但我已经尝试了我发现的建议解决方案,但没有任何效果。所以,这里是:

我有一个包含 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。谁能告诉我我做错了什么?

1 个答案:

答案 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'")

Example

相关问题