PHP 到期日期

2024-04-08

背景信息

我正在为游戏 garrys mod 创建一个捐赠/购买系统。当用户通过 paypal 捐赠时,我有 php 代码来处理 iPN 并将数据输入数据库,它还会生成一个序列密钥并将其通过电子邮件发送给用户,然后用户可以在游戏中输入该密钥,当用户在游戏中输入序列时,它会检查数据库查看key是否有效,然后执行相关的lua代码。到目前为止,该系统运行良好,但捐赠包的有效期为30天、90天、180天和365天。

我想要实现的是,当用户在游戏中输入密钥时,我将获得 lua 代码,用于存储玩家的 steam id 以及他们兑换的日期以及该包将持续多长时间。我将设置一个 cron 作业来运行一个脚本,该脚本检查数据库是否使用了密钥,如果密钥已被使用,它将检查,例如,自他们兑换密钥以来是否已经过去 30 天,如果它低于30 天什么都不做,如果超过 30 天,那么它会将表中的值从 0 更改为 1。

Question

我真正难以理解的部分是如何存储日期并检查日期,最初我以为我会使用一年中的某一天,但随后出现了年份从 365 更改为 0 的问题,如果有人购买怎么办如果在 12 月持续 90 天,就会出现错误。那么我怎样才能可靠地解释年份的变化呢?

感谢所有发布答案的人,而且速度也非常快,我想我现在有足够的时间来工作,再次感谢您的时间


好吧,我不知道你的数据库结构,但假设它是这样的:

user_table
-----------------------------------------
user_id   | date_of_redeem | subscription
-----------------------------------------
user1     | 2014-02-01     | 90
user2     | 2014-05-18     | 365
user3     | 2014-07-22     | 180

因此,如果仅使用 SQL 语句,您可以使用 DATE_SUB 之类的东西。将 date_of_redeem 与今天的日期减去订阅金额进行比较。如果 date_of_redeem 的值较高,那么您将得到一个结果,否则将返回一个空结果集。

SELECT *
FROM `user_table`
WHERE `date_of_redeem` > DATE_SUB(NOW(), INTERVAL `subscription` DAY) AND `user_id` = 'desired_user_id'

编辑:上述查询的 SQL Fiddle:http://sqlfiddle.com/#!2/f95ea/11 http://sqlfiddle.com/#!2/f95ea/11(只是改变user3到任何用户 ID 以检查它们是否返回任何结果。

如果您想获得包含所有订阅到期日期的表格,那么您可以执行以下操作:

SELECT `user_id` AS `User`, (DATE_ADD(`date_of_redeem`, INTERVAL `subscription` DAY)) AS `Subscription Ends`
FROM `user_table`

SQL Fiddle 为此:http://sqlfiddle.com/#!2/f95ea/9 http://sqlfiddle.com/#!2/f95ea/9

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 到期日期 的相关文章

  • 关于加拿大短信网关提供商的建议[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我很好奇 如果我能够接受传入的短信到某个号码 然后将其传递给 PHP 中的服务器端应用程序 会带来多少麻烦 金钱 我最终会通过电子邮件地址发回短信 有
  • 重复使用相同的卷曲手柄。性能大幅提升?

    在 PHP 脚本中 我对不同的 URL 执行了许多不同的curl GET 请求 一百个 将重复使用来自curl init提高性能 还是与请求的响应时间相比可以忽略不计 我这么问是因为在当前的架构中保持相同的句柄并不容易 交叉发布自我应该关闭
  • 如何在 Zend Framework 中存储 cron 作业的脚本?

    因为 ZF 的所有 URL 都依赖于 mod 重写 所以我并不清楚应该在哪里存储用于 cron 作业的本地脚本 有人有什么建议 或者有 正式接受 的方式吗 我用模块化目录结构 http framework zend com manual e
  • 我应该使用平面表还是标准化数据库?

    我目前正在开发一个使用 MySQL 数据库作为后端的 Web 应用程序 在继续下一步之前 我需要知道什么更适合我的情况 简而言之 在这个应用程序中 用户将能够使用任何数字字段 他们决定 构建自己的表单 现在我将其全部存储在通过外键链接的几个
  • 如何将 PHPMailer 与 Codeigniter 3 集成

    嗨 我正在尝试使用PHPMailer 库 https github com PHPMailer PHPMailer来自我的 Codeigniter 应用程序中的 GitHub 我下载了代码并解压到我的application library文
  • SQL UPDATE 语句根据另一个现有行更新列

    基本上我有一个与下表具有相似格式的表格 我想做的是根据这个逻辑更新 Col4 如果 Col2 为空 则用 Col3 更新 Col4 如果 Col2 不为 null 则在 Col1 中查找与 Col2 中的值匹配的值 使用 col3 中的相应
  • php 如何统计文件夹中的文件数量?

    我想让用户能够在自己的文件夹中上传一些文件 图片 但只有当该文件夹包含的图片少于五张时才可能 如果已经有 5 张图片 脚本必须让用户知道他 她的文件夹已满 所以 我想知道php中是否有函数可以计算文件夹中的文件数量 或者 php 中有其他方
  • 使用 php 更改白天和黑夜的背景?

    我正在制作一个 tumblr 页面 我的 html 页面有两种不同的背景 我希望白天背景从早上 7 点到晚上 8 点显示 夜间背景从晚上 8 点到早上 7 点显示 我决定用 php 来做这件事 但对于 php 来说我是个新手 我的朋友给我发
  • 删除表的重复项

    In my activity logs 它包含列 material name user id mod result 这标志着测试是否通过 失败 cert links 不知何故 用户生成了两倍的条目material name与cert lin
  • TOMCAT 6 中的 PHP - 异常

    我一直在努力融入PHP in APACHE TOMCAT 6依照指示second answer为了QUESTION https stackoverflow com questions 779246 run a php app using t
  • Laravel 按动态 ID 数组对集合进行排序 [重复]

    这个问题在这里已经有答案了 我有以下 people array 5 2 9 6 11 people collection People find people 但当我倾倒并死去时 people collection集合按 ID ASC 排序
  • CakePHP Xml 实用程序库触发 DOMDocument 警告

    我正在使用 CakePHP 在视图中生成 XMLXML核心库 http book cakephp org 2 0 en core utility libraries xml html xml Xml build data array ret
  • MySQL:如何获取每个分组的x个结果数[重复]

    这个问题在这里已经有答案了 可能的重复 mysql 在 GROUP BY 中使用 LIMIT 来获取每组 N 个结果 https stackoverflow com questions 2129693 mysql using limit w
  • 如何用javascript正确读取php cookies

    考虑这个 php 和 javascript 代码 然后我在控制台中看到的是 utma 111872281 291759993 1444771465 1445374822 1445436904 4 utmz 111872281 1444771
  • postgreSQL 在 WAMP 上的集成

    我刚刚在 Windows 7 上安装了 postgreSQL 我正在尝试将 postgreSQL 与 WAMP 服务器集成 为此 我在 httpd conf 和 php ini 文件中进行了以下更改 1个加载模块c path to libp
  • 将 MySQL 结果作为 PHP 数组

    mysql 表 config name config value allow autologin 1 allow md5 0 当前的 php 代码 sth mysql query SELECT rows array while r mysq
  • 如何从字符串中删除所有数字?

    我想删除字符串 0 9 中的所有数字 我写了这段有效的代码 words preg replace 0 words remove numbers words preg replace 1 words remove numbers words
  • PHP文件上传

    如果我想在文件名转到服务器的永久位置 而不是临时位置 之前更改文件名 我该如何执行此操作 代码如下
  • 为什么 PHP 中不允许“传统”类型提示?

    刚刚发现类型提示 http php net manual en language oop5 typehinting phpPHP 中允许 但不适用于整数 字符串 布尔值或浮点数 为什么 PHP 不允许对整数 字符串等类型进行类型提示 从 P
  • Hibernate + MySQL + rewriteBatchedStatements=true

    我有以下 Hibernate 配置

随机推荐

  • 可以将用户的盐与密码哈希保存在同一个表中吗?

    是不是还好而且没啥用 它可以保存在另一个表甚至另一个数据库中 你怎么认为 附 为了更高的安全性 我也有常量的盐 花生 它是保存在配置文件 而不是数据库 中的常量值 因此 如果黑客想要以某种方式破解密码 他还需要访问文件服务器和数据库 是的
  • 迭代 Hogan.js 中的键/值

    有没有办法使用 Hogan js 迭代对象中的键和值 我无法找到此类记录的功能 似乎只记录了数组的迭代 是否甚至可以迭代 hogan js 或任何其他 moustache js 实现 中的对象 在 Hogan js 中无法直接迭代对象中的键
  • 类模板中的 Constexpr 成员函数

    以下代码无法编译 template
  • NSMutableAttributedString:如何在 iOS 上以编程方式删除最后一个字符?

    我有一个自定义键盘 我必须在将 nsmutableattributedstring 作为文本 字符和 nstextattachment 的组合 的文本视图上执行退格操作 根据 Moxy 的说法 如果您的最后一个字符足够大 无法容纳在单个 U
  • Extjs 4.1 多对多模型关联

    当我想创建多对多关联时 我遇到一些问题 因为它不知道 我尝试以这种方式建立关系 但我不确定 任何人都可以帮助我吗 我该怎么做 这是我的代码 Ext define Ext4Example model Category extend Ext d
  • 在 MEF 和 MAF 之间进行选择 (System.AddIn)

    托管扩展性框架 MEF 和托管外接程序框架 MAF 又名 System AddIn 似乎完成非常相似的任务 根据这个堆栈溢出问题 MEF 是 System Addin 的替代品吗 https stackoverflow com questi
  • Angular 5:使用 Angular 将回调方法传递给第三方脚本

    I really导入的第 3 方脚本来触发类似的功能show end screen below 我的组件 import Router from angular router import init game start game stop
  • Android 应用程序密钥哈希与任何存储的密钥哈希不匹配

    我在 Play 商店上有一个生产应用程序 它使用 Facebook SDK 登录 当我从 Eclipse 调试应用程序时没有问题 但是当它投入生产时 在 Facebook 询问我权限后 它给了我以下错误 我已使用以下命令在developer
  • 如何杀死 ubuntu 上端口上的进程

    我正在尝试在命令行中终止 ubuntu 中特定端口的进程 如果我运行此命令 我会得到端口 sudo lsof t i 9001 所以 现在我想运行 sudo kill sudo lsof t i 9001 我收到此错误消息 ERROR ga
  • 如何使用 Python 将 Excel 图表粘贴到 PowerPoint 占位符中?

    我有一个 excel 文件 其中一个名为的选项卡上有一系列格式化图表Charts 我已经给图表命名了 Figure1 Figure2 Figure3 etc 我有一个现有的 PowerPoint 模板 该模板每张幻灯片有 2 个占位符 以便
  • 列表视图的自定义适配器

    我想创建一个custom adapter对于我的列表视图 是否有任何文章可以引导我完成如何创建一个并解释其工作原理 public class ListAdapter extends ArrayAdapter
  • Cordova 3.7 在每个本机调用上复制 iframe

    自从我升级到 Cordova 3 7 以来 每个本机调用都会将一个新的 iframe 附加到 DOM 如下所示 为了排除现有代码影响 cordova 的可能性 我尝试使用 cordova CLI 创建一个新代码 添加控制台插件并在 devi
  • 几何级数中的数字

    如何在 R 中生成几何级数中的数字序列 例如我需要生成序列 1 2 4 8 16 32 等等 直到说一个有限值 这就是我要做的 geomSeries lt function base max base 0 floor log max bas
  • 模块之间共享资源的良好做法? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ruby datamapper 将无法加载

    我试图通过遵循本教程来了解 Sinatra ruby 框架 http net tutsplus com tutorials ruby singing with sinatra the recall app 2 http net tutspl
  • Double Not Exists SQL逻辑解释

    有 2 张表 一张称为 drinkers 有一列名称 另一个称为 frequents 有 2 列 即 drinkers 和 bars 他们经常光顾的 我有一个查询可以回答此声明 Drinkers who frequent all bars
  • Android:以编程方式从剪贴板中删除单个项目

    Android 剪贴板服务允许您将文本或其他项目添加到剪贴板中 在大多数 Android 设备上 Clipdata 项目将被插入到未定义最大内容数的堆栈中 我的问题如下 我有一个密码管理器应用程序 可以将选定的密码插入剪贴板 但由于密码是高
  • 如何在Delphi中一次正确地释放包含各种类型的记录?

    type TSomeRecord Record field1 integer field2 string field3 boolean End var SomeRecord TSomeRecord SomeRecAr array of TS
  • CompiledQuery 与 List.Contains (where...in list) 功能?

    我正在尝试使用 Linq to Entities 编写 CompiledQuery 它将替换采用两个数组 在本例中为逗号分隔的 TEXT 参数的存储过程 本质上 SQL 是这样的 Stored Proc definition ArrayPa
  • PHP 到期日期

    背景信息 我正在为游戏 garrys mod 创建一个捐赠 购买系统 当用户通过 paypal 捐赠时 我有 php 代码来处理 iPN 并将数据输入数据库 它还会生成一个序列密钥并将其通过电子邮件发送给用户 然后用户可以在游戏中输入该密钥