- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个需要每月向客户收费的系统。日期将取决于他们订阅的日期:可能是每月 1 日或该月的最后一天。
我正在存储第一个日期。例如,如果客户今天订阅,他将在 2016 年 11 月 30 日付费,因此我将 2016 年 11 月 30 日存储在数据库中。
当日期是固定值(假设是 1 日)时,这不是问题。当该月的最后一天时,问题就出现了。考虑到上面的示例,该客户需要在 2016 年 12 月 31 日而不是 2016 年 12 月 30 日付费(因为 31 日是 12 月的最后一天)。
如何构建一个 PHP 脚本来获取所有需要在该月最后一天收费的客户?
提前致谢!
编辑
示例:
客户 A 今天注册。系统提示该客户需要在每个月的最后一天扣费。客户表中有一个包含第一个日期的字段,在本例中它将存储 2016-11-30。这意味着他将在 11 月 30 日、12 月 31 日、1 月 31 日、2 月 28 日(或 2 月 29 日)、3 月 31 日、4 月 30 日被指控,并继续。
客户 B 明天签约。系统提示该客户需要在每个月的第一天进行计费。数据库字段将存储2016-12-01。这意味着他将在 12 月 1 日、1 月 1 日、2 月 1 日、3 月 1 日、4 月 1 日被指控,并继续。
现在,我需要构建一个脚本来决定何时向客户收费。客户 B 没有问题,因为他是在每个月的 1 号设置的。但客户 A 不会在该月的同一天被扣费。在某些月份,他将在 30 日被指控,其他月份则在 31 日被指控,而在 2 月,他将在 28 日/29 日被指控。
脚本如何知道 2016-11-30 实际上“意味着”:“该月的最后一天”而不是字面上的 2016-11-30?
最佳答案
您可以尝试以下操作:
<?php echo date('d-m-Y', strtotime('last day of this month')); ?>
只需根据您的喜好和格式修改参数即可。像上个月和下个月这样的事情也有效。
关于php - 每月在特定日期向客户收费,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40630016/
当我创建订阅时,我设置了一些元数据来识别我在数据库中的订单。当我收到 webhook charge.succeeded 时,来自订阅的元数据未在此事件中传递,我无法识别与此付款相关的订单。如何在与订阅
我正在使用 PayPal Vault 服务将金额从存储的信用卡转移到 PayPal 专业账户。 这是我遵循的文档链接:https://developer.paypal.com/docs/integra
我想将 CloudKit 用于我的一个免费的新应用程序 (0 美元)。这就是为什么如果我的应用程序达到 Apples Cloud Kit 计划的免费套餐限制并产生费用会很糟糕。 我阅读了一些帖子、官方
我在我的应用程序中使用 Azure 推送通知。为了创建移动服务,它需要在其中创建 SQL 数据库,对于 SQL 数据库,我的费用约为 3.5 美元/月。但是当我打开该数据库时,里面什么也没有。问题是为
我通过 Google 的应用内结算购买了受管理产品的应用内购买。 订单正在处理中,但我在 Wallet Merchant Center 中看到订单状态为 Chargeable。 奇怪的是,订单状态是
使用基本版本的 EC2 实例时,“流量”是否有任何变化,基本的意思是: 每月 750 小时的 Linux、RHEL 或 SLES t2.micro 实例使用时间 流量:如果我们设置了一个服务器,并且我
使用基本版本的 EC2 实例时,“流量”是否有任何变化,基本的意思是: 每月 750 小时的 Linux、RHEL 或 SLES t2.micro 实例使用时间 流量:如果我们设置了一个服务器,并且我
我正在使用Angular-Stripe-Checkout library创建像这样的 stripeToken example 。一些亮点如下所示。 与许多 Angular-stripe 库和示例一样,
我将卡信息存储在数据库中,例如客户首次付款时的卡 ID card_***** 和客户 ID cus_**** 以供以后使用.用户选择他的卡,例如以单选按钮 visa****4242 的形式,并使用卡
例如: count = 0 while True: try: if count == 5:
表单已提交两次:1. 页面加载2. 当用户点击结帐按钮时 我想避免第一次提交,它会抛出错误,因为返回的 token 为空:com.stripe.exception.InvalidRequestExce
我正在尝试通过自定义按钮使用 Stripe 的新结帐功能,通过 AJAX POST 将 token 发送到 php 文件,然后该文件将执行收费。不幸的是,我在从 POST 变量中检索 token 时遇
我是一名优秀的程序员,十分优秀!