例如:
1.* 一月的第三个星期一马丁·路德·金纪念日
1. 2月第三个星期一总统日(华盛顿生日)
1. 三月的最后一个周日复活节
1. 五月的最后一个星期一*阵亡将士纪念日
我正在努力得到这些日期,这样我就可以把它标记在我的日历上,而不需要手动把未来几年的一切。
修改答案!!
$curYir = date("Y");//current year
$MLK = date('Y-m-d', strtotime("january $curYir third monday")); //marthin luthor king day
$PD = date('Y-m-d', strtotime("february $curYir third monday")); //presidents day
$Est = date('Y-m-d', easter_date($curYir))); // easter
$MDay = date('Y-m-d', strtotime("may $curYir first monday")); // memorial day
//("may $curYir last monday") will give you the last monday of may 1967
//much better to determine it by a loop
$eMDay = explode("-",$MDay);
$year = $eMDay[0];
$month = $eMDay[1];
$day = $eMDay[2];
while($day <= 31){
$day = $day + 7;
}
if($day > 31)
$day = $day - 7;
$MDay = $year.'-'.$month.'-'.$day;
$LD = date('Y-m-d', strtotime("september $curYir first monday")); //labor day
$CD = date('Y-m-d', strtotime("october $curYir third monday")); //columbus day
$TH = date('Y-m-d', strtotime("november $curYir first thursday")); // thanks giving
//("november $curYir last thursday") will give you the last thursday of november 1967
//much better to determine it by a loop
$eTH = explode("-",$TH);
$year = $eTH[0];
$month = $eTH[1];
$day = $eTH[2];
while($day <= 30){
$day = $day + 7;
}
if($day > 30)
//watch out for the days in the month November only have 30
$day = $day - 7;
$TH = $year.'-'.$month.'-'.$day;
7条答案
按热度按时间e3bfsja21#
您可以利用php.strtotime的这个函数
MLK日-
总统日-
复活节-
阵亡将士纪念日
x6yk4ghg2#
strtetime函数在这里很有用,但是它在解释英语单词时似乎有一些特殊之处。一定要仔细检查你的用词和结果。
例如,这似乎应该工作,但它将返回4月的最后一个星期一($currentYear = 2014)!
然而,这一措辞将返回2014年的正确假期。
这样你就给予明年度假的正确日期了。
PHP文档页面有关于其使用的附加注解。
mnowg1ta3#
这种方法对我很有效。
然后,您可以通过调用函数
echo get_holiday('new_year');
打印出假日2015年的结果应该是
20150101
brgchamk4#
在德国移动假日的解决方案:返回'Y-m-d'格式的字符串数组,包括耶稣受难日、复活节星期一、ascencion和圣灵降临节星期一。为复活节每天创建一个新的DateTime对象以增强可读性。
rjjhvcjd5#
我创建了一个函数,它可以计算任何一年的所有联邦假日(美国),并将它们返回到一个数组中。我用几个不同的年份(从2016年到2024年)测试了它。下面是代码,如果你发现任何计算错误,请告诉我:
n3h0vuf26#
如果你愿意在这里一次性手动输入日期,你可以使用我的定制函数。它简短,简单,满足每个人的需要。如果你愿意,你可以自己修改它。另外,如果你能找到一种方法,以给定的格式动态传递数组中的日期,那么你可以选择修改它。然而,我下面的功能只适用于那些有固定日期的假日。2你可能需要手动管理每年有动态或变动日期的假日,如阵亡将士纪念日、劳动节等。
我的自定义PHP函数
如果你的意思是检查国际假日这里是一个函数我写的。
就这么说吧
e5nqia277#
我综合了@Shubham Jha和@Max的解决方案,得出了以下选择: