[英]How can I generate a list of pay-period-ending dates in PHP4?
我看到所有好的日期/时间函数都仅是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
]
显然,那是我想要的日期的近似值。 最好是自纪元后的秒数。
仅使用PHP 4.3中可用的工具来执行此操作的最佳方法是什么?
您可以使用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";
}
可能不完全准确,但是您应该了解一下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.