企业官网建站 小程序开发 云逸学习园地
技术文章 许愿墙
技术文章 PHP学习 Javascript学习 DIV+CSS学习 uniapp学习 HTML学习 微信小程序、公众号知识点 VUE知识学习
您所在的位置>云逸小栈>PHP学习>正文

PHP计算会员卡续期累加时间方法

2025-03-10 14:33:18 浏览 808

使用场景:会员卡即将到期,客户购买一个月会员卡续期,求的具体到期日期的方法......


代码部分

<?php  
namespace app\controller;  
use think\facade\Db;  
use DateTime;  
use DateInterval;  
class Membership  {      /**       * 续期会员卡       *       * @param int $memberId 会员ID       * @param int $months 续期月数       * @return bool       */      public function renewMembership(int $memberId, int $months): bool      {          // 1. 获取当前到期时间          $member = Db::name('members')              ->where('id', $memberId)              ->find();          if (!$member) {              return false; // 会员不存在          }          $expiryDate = $member['expiry_date'];          // 如果到期时间为空,则默认为当前时间          if (empty($expiryDate)) {              $expiryDate = date('Y-m-d H:i:s'); // 当前时间          }          // 2. 计算续期后的时间          $date = new DateTime($expiryDate);          // 创建 DateInterval 对象,表示续期时长 (月)          $interval = new DateInterval('P' . $months . 'M'); // P表示Period,M表示Month          // 将续期时长添加到当前到期时间          $date->add($interval);          // 获取新的到期时间          $newExpiryDate = $date->format('Y-m-d H:i:s');          // 3. 更新到期时间          $result = Db::name('members')              ->where('id', $memberId)              ->update(['expiry_date' => $newExpiryDate]);          return $result !== false; //  如果更新成功,返回 true, 否则返回 false      }   }  

使用方法

<?php  
namespace app\controller;  class Test  {      public function index()      {          $membership = new Membership();          $memberId = 123; // 假设会员ID为 123          $months = 1;   // 续期 1 个月          $result = $membership->renewMembership($memberId, $months);          if ($result) {              echo "会员续期成功";          } else {              echo "会员续期失败";          }      }   }


网站开发者电话

18066742510

个人微信号
个人公众号
个人小程序
个人抖音