PHP-用PHP计算周末和假日

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP-用PHP计算周末和假日相关的知识,希望对你有一定的参考价值。

Der folgende Codeschnipsel enthält keinerlei Überprüfungen der übergebenen Parameter, diese sollten für den produktiven Einsatz noch nachgepflegt werden.
Wie man sieht, ist die Berechnung von Wochendenden und Feiertagen recht einfach. Diese Berechnung kann man sicherlich auch schnell in anderen Programmiersprachen abbilden.
  1. function freierTag($tag, $monat, $jahr) {
  2.  
  3. // Parameter in richtiges Format bringen
  4. if(strlen($tag) == 1) {
  5. $tag = "0$tag";
  6. }
  7. if(strlen($monat) == 1) {
  8. $monat = "0$monat";
  9. }
  10.  
  11. // Wochentag berechnen
  12. $datum = getdate(mktime(0, 0, 0, $monat, $tag, $jahr));
  13. $wochentag = $datum['wday'];
  14.  
  15. // Prüfen, ob Wochenende
  16. if($wochentag == 0 || $wochentag == 6) {
  17. return true;
  18. }
  19.  
  20. // Feste Feiertage werden nach dem Schema ddmm eingetragen
  21. $feiertage[] = "0101"; // Neujahrstag
  22. $feiertage[] = "0105"; // Tag der Arbeit
  23. $feiertage[] = "0310"; // Tag der Deutschen Einheit
  24. $feiertage[] = "2512"; // Erster Weihnachtstag
  25. $feiertage[] = "2612"; // Zweiter Weihnachtstag
  26.  
  27. // Bewegliche Feiertage berechnen
  28. $tage = 60 * 60 * 24;
  29. $ostersonntag = easter_date($jahr);
  30. $feiertage[] = date("dm", $ostersonntag - 2 * $tage); // Karfreitag
  31. $feiertage[] = date("dm", $ostersonntag + 1 * $tage); // Ostermontag
  32. $feiertage[] = date("dm", $ostersonntag + 39 * $tage); // Himmelfahrt
  33. $feiertage[] = date("dm", $ostersonntag + 50 * $tage); // Pfingstmontag
  34.  
  35. // Prüfen, ob Feiertag
  36. $code = $tag.$monat;
  37. if(in_array($code, $feiertage)) {
  38. return true;
  39. } else {
  40. return false;
  41. }
  42. }

以上是关于PHP-用PHP计算周末和假日的主要内容,如果未能解决你的问题,请参考以下文章

用java 进行日期计算,获取当前天+1天,周末节假日不算,在线等待中,十万火急……

java 给一个日期,往后加三天,如果是周末,节假日不算天数。直到加满三天为之,得出日期。

计算两个日期之间的工作日(去掉周末和节假日)

SQL 排除周末和公共/银行假日

计算每月的业务/活跃天数

周末及节假日天数去掉