获取指定日期之前的星期的开始和结束日期
问题描述:
我从jquery datepicker中选择一个日期,我想选择该日期之前一周的开始和结束日期。 - 例如,选择2013年4月10日应返回2013年3月31日和2013年4月6日。 星期日是一周的第一天,星期六是最后一天。获取指定日期之前的星期的开始和结束日期
以下是我的代码。
$weekday = $d->format('w');
$diff = 7 + ($weekday == 0 ? 6 : $weekday - 0); //to make week start from monday till sunday add 1 to weekday -
$start1 = $d->modify("-$diff day");
$start_date = $d->format('Y-m-d');
$end1 = $d->modify('+6 day');
$stop_date = $d->format('Y-m-d');
该代码工作正常,至少主要是。但是,当我选择任何星期天时,我会得到一个错误的预期结果,这是前一周的前一周。例如,如果我选择2013年3月31日 - 我应该得到3月24日和3月30日,,但我得到3月28日和3月24日。
我在哪里出错了?
答
试试这个,它应该解决您的问题:
$input = 'April 10, 2013'; // come from jquery
$dt = new DateTime($input . ' -1week');
$monday = clone $dt->modify(('Sunday' == $dt->format('l')) ? 'Monday last week' : 'Monday this week');
$sunday = clone $dt->modify('Sunday this week');
printf("You've selected a date in the week from %s to %s\n",
$monday->format('Y-m-d'),
$sunday->format('Y-m-d')
);
有N + 1号的类似的问题。 – hjpotter92 2013-04-10 13:26:14
@ hjpotter92。你能不能显示任何一个链接? (或找到n的价值,显然你有很多时间) – tony9099 2013-04-10 13:28:56
好吧在这里,以帮助你,所以帮助我帮助你好吗? – ncm 2013-04-10 13:29:32