我看到所有好的日期/时间函数都是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日结束。
所以,下面是一个电话:
>>> get_pay_period_ending_dates($timeInSecondsFromEpoch);
[
$date52weeksBeforeTheNextPayPeriodEnding,
$date50weeksBeforeTheNextPayPeriodEnding,
...
$nextPayPeriodEnding
]很明显,这是我想要的日期的近似。最好是在几秒钟内。
仅使用PHP4.3中可用的工具,这样做的最佳方法是什么?
发布于 2010-06-24 18:03:33
你可以用strtotime()做很多事情。它感觉有点脏,但它使事情简单。
$startDate = strtotime('June 26, 2010');
for($i = 0; $i <= 52; $i+=2) {
echo date('m-d-y', strtotime("-$i weeks", $startDate)), "\n";
}我认为这是一个不错的起点/概念的证明。
随着开始日期的计算而更新:
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";
}可能不是完全准确,但你应该有个想法。
https://stackoverflow.com/questions/3112594
复制相似问题