簡體   English   中英

如何在PHP4中生成付款截止日期的列表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM