在 PHP 中,如何向从 iPhone InApp 收据检索到的购买日期添加 3 个月?

2024-01-06

在我从 PHP 服务器验证 App Store 的收据后,App Store 向我发回一个 JSON 响应

"status" : 0 
"receipt" : ( .... )

收据项目之一是“purchase_date”,其中包含以下字符串(示例)“2010-02-09 19:17:04 Etc/GMT”

我正在尝试建立订阅服务,并希望在此日期上添加 3 个月,然后将该到期日期写入 MySQL 表中。

PHP中是否有一个string-to-date类型的函数可以让我实现添加3个月?

我发现这个例子看起来像是给日期增加了 1 个月:

$date = date("Y-m-d");// current date
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 month");

但我不知道如何将 App Store 传递的字符串转换为 PHP 识别的日期。


你已经做到了,只是多加了一步。

$purchase_date = "2010-02-09 19:17:04";
$purchase_date_timestamp = strtotime($purchase_date);
$purchase_date_3months = strtotime("+3 months", $purchase_date_timestamp);

echo "Purchase date + 3months = ".date("Y-m-d h:i:s", $purchase_date_3months);

这取决于strtotime识别你的时间字符串 - 首先尝试一下。但通常情况下,strtotime 可以识别任何格式正确的英美日期/时间字符串。如有疑问,请检查manual http://www.php.net/strtotime.

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

在 PHP 中,如何向从 iPhone InApp 收据检索到的购买日期添加 3 个月? 的相关文章

随机推荐

  • VHDL 上的反转位顺序

    我在做类似的事情时遇到困难 b 0 to 7 lt a 7 downto 0 当我用ghdl编译它时 出现顺序错误 我发现使我的电路工作的唯一方法如下 library ieee use ieee std logic 1164 all ent
  • Android 库项目自定义构建

    我有一个遗留应用程序 需要将其拆分为一个库项目 通用代码 和两个应用程序项目 付费和免费应用程序 我不使用 Eclipse 进行开发 也不使用 Android SDK 提供 生成 的 Ant 构建 有几个原因 不同的项目目录结构 集成到构建
  • 使用java从jar作为资源播放.wav文件

    我想使用 jar 文件中的 java 代码作为资源来播放 wav 文件 我的代码是这样的 try URL defaultSound getClass getResource images ads WindowsNavigationStart
  • 如何获取HTTP 404响应的响应内容

    有没有比直接通过 tcp 访问主机更简单的方法来获取 HTTP 404 响应的内容 这是 404 响应的示例 内容如下 HTTP 1 1 404 Object Not Found Server CouchDB 1 3 0 Erlang OT
  • 连接分层模块:SystemVerilog 中的结构与接口

    在 SystemVerilog 中 分层模块可以通过简单数据类型 复杂数据类型 结构 联合等 或接口进行连接 我感兴趣的功能是将两个模块之间的所有信号聚合到一个地方 这简化了代码的维护 例如 在下面的例子中 更改 s point 的定义而不
  • 是否将指针移动到结构成员 UB 的后面?并访问它?

    看看这个片段 struct S float x y z void fn S s 0 0 0 float p s x p 2 1 if constexpr sizeof S sizeof float 3 if S has no padding
  • 复制链表中的结构

    在这里 我将结构从一个节点复制到另一个节点 但是当我遇到最后一个节点时 我将出现分段错误 因为temp clsf gt next in memcpy将指向无效位置 我该如何解决这个问题 我无法自由temp clsf因为它不是动态分配 whi
  • C# 使用递归从 List 创建 HTML 无序列表

    是否可以使用递归输出以下 HTML 无序列表 ul li 1 ul li 5 ul li 8 li li 9 li ul li li 6 li ul li li 2 li li 3 li li 4 li li 7 li ul 原始数据保存在
  • 如何按特定顺序获得电源组?

    有一些计算幂集的解决方案 但我在谷歌上找到的这些解决方案并没有按我需要的顺序给出幂集 例如 如果我想要的幂集 1 2 3 4 常见算法为我提供了一个幂集 以下顺序 1 2 1 2 3 1 3 2 3 1 2 3 4 1 4 2 4 1 2
  • Python PyInstaller 和包含图标文件

    我正在使用 PyInstaller v1 5 构建一个可执行文件 另外 我正在使用 GUI2EXE 来帮助我 我的脚本需要位于工作目录中的图标文件 icon file pics myicon ico 当我构建可执行文件时 我希望不必包含 工
  • 读取 XML 属性并获取其值

    我对这个 XML 问题很感兴趣 我有一个 XML 文件 我可以浏览该文件来查找值 一切工作正常 我可以阅读所有子节点 但我被困在这一部分 包含照片的XML部分都是相同的节点名称 除了一个属性之外 我如何指定如何根据此浏览并获取每个文件的文件
  • OpenCart 2.0:如何从结账页面删除账单详细信息

    基本上 我想从 OpenCart 2 0 的结账页面中删除 步骤 2 账单详细信息 我的网站仅接受银行存款 货到付款和商店提货作为付款方式 因此我不需要第 2 步 我该如何操作 我看过很多操作方法 但没有看到 OpenCart 2 0 的操
  • gradle > 任务:app:externalNativeBuildDebug FAILED android_gradle_build.json(没有这样的文件或目录)

    我正在尝试使用命令行从命令行构建一个android项目 gradlew app assembleDebug 但是 当我构建任务失败时 gt Task app externalNativeBuildDebug FAILED FAILURE B
  • 防止多行文本框“窃取”滚动事件

    我在 TabControl 中有一些多行文本框 选项卡控件有一个滚动条 但一旦多行文本框聚焦 滚动将滚动文本框而不是选项卡控件 有什么方法可以阻止文本框接受事件并更像普通文本框 但仍然是多行的 将 TextBox ScrollBars 属性
  • 即使没有传入消息,Boost ASIO UDP 客户端 async_receive_from 也会调用处理程序

    我已将 Boost 白天客户端教程中的 UDP 客户端代码修改为以下内容 class UDPClient public udp socket socket udp endpoint receiver endpoint boost array
  • Powershell 和 winapi SystemParametersInfo 函数

    我正在尝试这个 f DllImport user32 dll public static extern int SystemParametersInfo int uAction int uParam int lpvParam int fuW
  • Ansible 跳过带有变量定义的 import_playbook

    我有一个main yaml像下面这样 import playbook 1 yaml import playbook 2 yaml vars allow2 False when allow2 我想要剧本2 yaml可以完全跳过 不要尝试执行里
  • angularjs无限$digest循环,当范围没有改变时

    我的角度代码中出现以下错误 我很难理解为什么函数 getDrawWithResults 会导致摘要循环 因为似乎没有任何副作用 它只是从列表中返回属性设置为 true 的项目 仅当页面上第一次使用 getDrawWithResults 时才
  • 导入 read.csv/read.xlsx 时将 NA 值插入数据框空白单元格

    所附的屏幕截图显示了我刚刚从 Excel 文件导入到 R 中的数据框的一部分 在空白单元格中 我需要插入 NA 如何将 NA 插入任何空白单元格 同时保留已填充的单元格 更好的问题是我如何将其读入 R 以便丢失的单元格已经存在NAs 也许你
  • 在 PHP 中,如何向从 iPhone InApp 收据检索到的购买日期添加 3 个月?

    在我从 PHP 服务器验证 App Store 的收据后 App Store 向我发回一个 JSON 响应 status 0 receipt 收据项目之一是 purchase date 其中包含以下字符串 示例 2010 02 09 19