php - 从开始日期开始的 PHP 星期和日期
问题描述
我有一个用户的订阅日期。例如 2019-07-04。
根据周(1,2,3,4)或日(1-7),我需要确定相对于开始日期的周或日。
所以 2019-07-04 将是 Week1,Day1 2019-07-05 将是 Week1,Day2 等等
循环必须重复,所以如果我们到达第 4 周、第 7 天,第二天必须是第 1 周、第 1 天
周数可以是任意数量,天数 <= 7
有任何想法吗?请注意碳不是一种选择
解决方案
试试看。
<?php
$date = DateTime::createFromFormat('Y-m-d', '2019-06-14' ); //please insert your date here
$dateDiff = $date->diff( new DateTime() )->format('%a');
if ( $dateDiff > 0 ) {
$subscriptionCount = intval( intval( $dateDiff ) / ( 7 * 4 ) );
$currentWeekCount = intval( $dateDiff / 7 ) % 4;
$currentDayCount = $dateDiff % 7 + 1;
} else {
echo 'invalid day';
}
echo $subscriptionCount.' times renew'.PHP_EOL;
echo 'last renew after '.$currentWeekCount.' weeks '.$currentDayCount.' days'.PHP_EOL;
推荐阅读
- amazon-web-services - 无法从 pod 访问外部 mongo 服务器,但能够从 EC2 实例连接
- javascript - 当文本变长时我的 d3 y 轴溢出,如何在图表中断字?
- css - tr元素样式的display属性初始值是多少?
- html - 导航栏中带有按钮的引导输入
- java - Eclipse - 使用新字符串的声纳 S2629 可能出现误报
- node.js - 如何在 kubernetes 上使用 redis 部署 node.js?
- javascript - 使用 JavaScript .map() 和 .filter() 按语言搜索作者/书籍数据模块
- angular - 无法在我的 Angular 6 视图中显示带有材料数据表的连接表数据
- javascript - 如何将值附加到 this.events
- c++ - 无法取消引用值初始化的双端队列迭代器