我正在尝试编写这样的日历功能
function get_date($month, $year, $week, $day, $direction)
{
....
}
$week
是整数(1、2、3 …),$ day是一天(Sun,Mon,…)或数字,以较容易的一个为准。方向有些混乱,因为它进行了不同的计算。
举个例子
get_date(5, 2009, 1, 'Sun', 'forward');
它使用默认值,并获得5月的第一个星期日,即2009-05-03。如果我们打电话
get_date(5, 2009, 2, 'Sun', 'backward');
,它将返回5月的第二个最后一个星期日,即2009-05-24。
也许可以使其更快。。。
代码非常有趣。
请注意,$direction
前进1表示反向,-1表示后退-1 :)
此外,$day
星期一的值从1开始,星期日的值从7结束。
function get_date($month, $year, $week, $day, $direction) {
if($direction > 0)
$startday = 1;
else
$startday = date('t', mktime(0, 0, 0, $month, 1, $year));
$start = mktime(0, 0, 0, $month, $startday, $year);
$weekday = date('N', $start);
if($direction * $day >= $direction * $weekday)
$offset = -$direction * 7;
else
$offset = 0;
$offset += $direction * ($week * 7) + ($day - $weekday);
return mktime(0, 0, 0, $month, $startday + $offset, $year);
}
我已经通过一些示例对其进行了测试,并且它似乎总是可以正常工作,不过请务必仔细检查;)
问题内容: 我想获取特定月份/年份中第一个星期一的日期。 我有的: 我基本上有两个int变量,一个代表年份,一个代表月份。 我想要的是: 我想知道本月的第一个星期一,最好是一个int或Integer值。 例如: 我有2014年和1月(1月),这个月的第一个星期一是6号,所以我想返回6。 问题: 我以为可以做到这一点,但是在设置日历(仅提供年和月)时已经遇到了麻烦。此外,我不确定如何使用返回实际的月
我想知道特定月份/年份的第一个星期一的日期。 我所拥有的: 我基本上有两个int变量,一个代表年份,一个代表月份。 我想要的是: 我想知道这个月的第一个星期一,最好是整数或整数值。 例如: 我有2014年和1月,这个月的第一个星期一是6号,所以我想返回6号。 问题: 我原以为我可以用做到这一点,但我在设置日历时遇到了问题,因为只有年份和月份可用。此外,我不知道如何使用返回月份/年份的第一个星期一。
问题内容: 如标题所述,我一直坚持寻找一种方法来使用JavaScript或jQuery获取当月的第一天和最后一个日期,并将其格式设置为: 例如,对于11月,应为: 问题答案: 非常简单,不需要库: 或者您可能更喜欢: 编辑 一些浏览器会将20年视为两位数,因此: 给出1914年1月1日。为避免这种情况,请创建一个Date,然后使用 setFullYear 设置其值:
问题内容: 如何在where子句中使用下个月的第一天和最后一天? 问题答案: 采用:
我不知道上个月最后一个星期一的正确日期。我认为像在这个问题中那样计算它并不是绝对正确的,并且想要拒绝常数的算术运算。此代码按预期工作: 但是当我设置至1,在建造商主体的第二条指示中返回2月的第一个星期一。我希望函数在1月26日返回给我,但现在是2月2日。我认为这是因为2月1日是星期天,但例如,对于三月代码是正确的。 请帮帮我,我很困惑)
问题内容: 我正在一个项目中,要求将日期计算为给定月份的最后一个星期五。我认为我有一个仅使用标准Java的解决方案,但我想知道是否有人知道更简洁或更有效的方法。以下是我今年测试的内容: 问题答案: 根据marked23的建议: