首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP4中生成支付期间结束日期列表?

如何在PHP4中生成支付期间结束日期列表?
EN

Stack Overflow用户
提问于 2010-06-24 17:54:27
回答 1查看 1.9K关注 0票数 0

我看到所有好的日期/时间函数都是PHP5函数,这使得这有点困难。我需要生成一个列表,列出所有的发薪期结束日期,从52周前开始,到未来的一个发薪期,每周一次。

所以,假设下一个发薪期是2010年6月26日,今天是2010年6月23日,我想要一个列表,从2009年6月26日开始,到2010年6月26日结束。

如果日期与支付期结束的日期相同,我想包括下一个:如果下一个发薪期是2010年6月26日,而今天是2010年6月26日,我想要一个列表,从2009年6月26日开始,到2010年7月10日结束。

所以,下面是一个电话:

代码语言:javascript
复制
>>> get_pay_period_ending_dates($timeInSecondsFromEpoch);
[
  $date52weeksBeforeTheNextPayPeriodEnding,
  $date50weeksBeforeTheNextPayPeriodEnding,
  ...
  $nextPayPeriodEnding
]

很明显,这是我想要的日期的近似。最好是在几秒钟内。

仅使用PHP4.3中可用的工具,这样做的最佳方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-24 18:03:33

你可以用strtotime()做很多事情。它感觉有点脏,但它使事情简单。

代码语言:javascript
复制
$startDate = strtotime('June 26, 2010');

for($i = 0; $i <= 52; $i+=2) {
  echo date('m-d-y', strtotime("-$i weeks", $startDate)), "\n";
}

我认为这是一个不错的起点/概念的证明。

随着开始日期的计算而更新:

代码语言:javascript
复制
function startDate($date) {
  $knownDate = strtotime('June 26, 2010');
  $diff = $date - $knownDate;
  $weeks = 2 * ceil($diff / (60*60*24*7*2));
  return strtotime("$weeks weeks", $knownDate);
}

$startDate = startDate(strtotime('June 26, 2011'));

for($i = 0; $i <= 52; $i+=2) {
  echo date('m-d-y', strtotime("-$i weeks", $startDate)), "\n";
}

可能不是完全准确,但你应该有个想法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3112594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档