php 前一天或后一天的日期 (签到时用过)

date_default_timezone_set('PRC'); //默认时区

    echo "今天:",date("Y-m-d",time()),"
";

    echo "今天:",date("Y-m-d",strtotime("18 june 2008")),"
";

    echo "昨天:",date("Y-m-d",strtotime("-1 day")), "
";

    echo "明天:",date("Y-m-d",strtotime("+1 day")), "
";

    echo "一周后:",date("Y-m-d",strtotime("+1 week")), "
";

    echo "一周零两天四小时两秒后:",date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds")), "
";

    echo "下个星期四:",date("Y-m-d",strtotime("next Thursday")), "
";

    echo "上个周一:".date("Y-m-d",strtotime("last Monday"))."
";

    echo "一个月前:".date("Y-m-d",strtotime("last month"))."
";

    echo "一个月后:".date("Y-m-d",strtotime("+1 month"))."
";

    echo "十年后:".date("Y-m-d",strtotime("+10 year"))."
";

    ?>

    php判断一个日期距今天还有多少天

    复制代码代码如下:

   

    echo (strtotime('2020-5-20′)-strtotime(date(“Y-m-d”)))/86400;

    ?>






PHP中实现一个连续签到功能,通常需要考虑如何记录用户的签到数据以及如何根据签到天数给予不同的奖励。下面是一个简单的示例,用于说明如何通过PHP和MySQL数据库来实现这个功能。 首先,需要建立一个数据库表来记录用户的签到信息,表结构可能包含用户ID、签到日期等字段。假设我们已经有一个名为`users`的表,现在创建一个新的表`sign_in_records`: ```sql CREATE TABLE sign_in_records ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, sign_in_date DATE NOT NULL, FOREIGN KEY (user_id) REFERENCES users(id) ); ``` 接下来,编写PHP代码来实现连续签到功能: ```php <?php // 假设已经连接数据库,并且用户已经通过身份验证 // 获取当前用户的ID $user_id = $_SESSION['user_id']; // 这里假设你已经有了用户ID保存在会话中 // 获取今天的日期 $today = date("Y-m-d"); // 插入或更新签到记录 function signIn($user_id, $today) { global $conn; // 假设已经建立了数据库连接 $sql = "INSERT INTO sign_in_records (user_id, sign_in_date) VALUES (?, ?) ON DUPLICATE KEY UPDATE sign_in_date = VALUES(sign_in_date)"; $stmt = $conn->prepare($sql); $stmt->bind_param("id", $user_id, $today); $stmt->execute(); } signIn($user_id, $today); // 查询连续签到天数 function getConsecutiveSignInDays($user_id) { global $conn; $sql = "SELECT COUNT(*) FROM sign_in_records WHERE user_id = ? AND sign_in_date BETWEEN ? AND ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("idd", $user_id, $start_date, $end_date); $start_date = date('Y-m-d', strtotime("-1 days")); $end_date = $today; $stmt->execute(); $result = $stmt->get_result(); return $result->num_rows; } $days = getConsecutiveSignInDays($user_id); // 根据连续签到天数给予奖励 if ($days > 0) { // 假设奖励规则为3天、7天、15天分别获得不同奖励 switch ($days) { case $days >= 15: // 给予15天连续签到奖励 break; case $days >= 7: // 给予7天连续签到奖励 break; case $days >= 3: // 给予3天连续签到奖励 break; default: // 不足3天,没有奖励 break; } } ?> ``` 在上述代码中,首先通过`signIn`函数插入或更新用户的签到记录。接着,`getConsecutiveSignInDays`函数查询用户连续签到的天数。最后,根据连续签到的天数,使用switch-case语句给予用户不同的奖励。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值