简体   繁体   中英

strtotime & datediff

i would like to ask you for some help about my problem.

my current code:

require_once 'MysqliDb.php';
$db = new MysqliDb('localhost', 'xy', 'xy', 'xy');
$users = $db->rawQuery('select * from police where datediff(skadenca,current_date())=30');

So now i select all queries where current date is +30days...but problem is because i want to use that script so send sms for birtdays too, si i need to somehow ignore year in current_date()...so i would like maybe to select full date, but strtotime and delete year, so i would need just day and month...

is there any quick solution for that?

Sorry but i'm still learning about php and sql, so probably my question will sound stupid?

Thanks for all answers

You could extract the month and day from the dates (after adding 30 days to the current date), and compare that:

where date_format(skadenca, '%m%d') = 
      date_format(date_add(current_date(), interval 30 day), '%m%d')

Note however, that if the birthdate is on 29 February, there might not be a match in the current year.

On the birthday itself

You could use this comparison:

where date_format(skadenca, '%m%d') = date_format(current_date(), '%m%d')

To also match a day when the birthday is on 29 February, and the current year is not a leap year, extend to this:

where (date_format(skadenca, '%m%d') = date_format(current_date(), '%m%d')
    or date_format(skadenca, '%m%d') = '0229' and dayofyear(current_date()) = 60)

This will match 1 March when the birthday is on 29 February and the current year is not a leap year.

In your code it should look like this -- this uses a field rojstvo like you mention in comments:

$users = $db->rawQuery("
    select * from police 
    where (date_format(rojstvo, '%m%d') = date_format(current_date(), '%m%d')
        or date_format(rojstvo, '%m%d') = '0229' and dayofyear(current_date()) = 60)
");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM