下是PHP实现新历生日提醒功能的代码:
$host = 'localhost'; // 数据库主机名 $user = 'root'; // 数据库用户名 $password = 'password'; // 数据库密码 $database = 'database_name'; // 数据库名 $conn = mysqli_connect($host, $user, $password, $database); if (!$conn) { die("连接失败: " . mysqli_connect_error()); }
- 查询生日
$today = date('m-d'); // 获取今天的日期 $sql = "SELECT * FROM `user` WHERE DATE_FORMAT(birthday, '%m-%d') = '$today'"; // 查询今天生日的用户 $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // 如果有生日的用户,进行提醒 while($row = mysqli_fetch_assoc($result)) { $name = $row['name']; $birthday = date('Y') . '-' . date('m-d', strtotime($row['birthday'])); echo "今天是 $name 的生日,TA 的生日日期是 $birthday!<br>"; } }
- 关闭数据库连接
mysqli_close($conn);
完整代码如下:
$host = 'localhost'; // 数据库主机名 $user = 'root'; // 数据库用户名 $password = 'password'; // 数据库密码 $database = 'database_name'; // 数据库名 $conn = mysqli_connect($host, $user, $password, $database); if (!$conn) { die("连接失败: " . mysqli_connect_error()); } $today = date('m-d'); // 获取今天的日期 $sql = "SELECT * FROM `user` WHERE DATE_FORMAT(birthday, '%m-%d') = '$today'"; // 查询今天生日的用户 $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // 如果有生日的用户,进行提醒 while($row = mysqli_fetch_assoc($result)) { $name = $row['name']; $birthday = date('Y') . '-' . date('m-d', strtotime($row['birthday'])); echo "今天是 $name 的生日,TA 的生日日期是 $birthday!<br>"; } } mysqli_close($conn);
- 定时运行:为了实现每天自动提醒生日,我们可以使用Linux中的cron定时任务。具体操作为:
- 使用命令
crontab -e
编辑当前用户的定时任务配置文件。 - 添加一行
0 0 * * * /usr/bin/php /path/to/birthday_reminder.php
,表示每天0点0分执行一次birthday_reminder.php脚本。 - 保存修改并退出编辑模式。
- 等待明天的0点,观察是否有生日提醒输出。
<?php $host = 'localhost'; // 数据库主机名 $user = 'root'; // 数据库用户名 $password = 'password'; // 数据库密码 $database = 'database_name'; // 数据库名 $conn = mysqli_connect($host, $user, $password, $database); if (!$conn) { die("连接失败: " . mysqli_connect_error()); } $today = date('m-d'); // 获取今天的日期 $sql = "SELECT * FROM `user` WHERE DATE_FORMAT(birthday, '%m-%d') = '$today'"; // 查询今天生日的用户 $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // 如果有生日的用户,进行提醒 while($row = mysqli_fetch_assoc($result)) { $name = $row['name']; $birthday = date('Y') . '-' . date('m-d', strtotime($row['birthday'])); echo "今天是 $name 的生日,TA 的生日日期是 $birthday!<br>"; } } mysqli_close($conn); ?>
将以上代码保存为birthday_reminder.php,放在一个网站的根目录下,然后设置好数据库连接信息和cron定时任务即可实现每天自动提醒生日。
评论