我有来自和来的日期范围.我想将它转换为几周.假设从日期是1-10-2014,到目前为止是2014年10月31日
然后结果是:
第1周:2014年1月1日至2014年10月4日第2期:05-102014至2014年10月11日第3期:2014年10月12日至2014年10月18日第4期:2014年10月19日至25日至10月10日2014年5月:2014年10月26日至2014年10月31日
在php.I尝试几个代码,但没有给出绝对结果只给01到7,8到14等请帮助.
我已经尝试过了答案
Get the date of one week from today with PHP in stack overflow
date("Y-m-d",strtotime("+1 week"));
Run Code Online (Sandbox Code Playgroud)
yma*_*mas 10
此代码段使用星期日作为一周的第一天:
$start = new DateTime('2014-10-01');
$end = new DateTime('2014-10-31 23:59');
$interval = new DateInterval('P1D');
$dateRange = new DatePeriod($start, $interval, $end);
$weekNumber = 1;
$weeks = array();
foreach ($dateRange as $date) {
$weeks[$weekNumber][] = $date->format('Y-m-d');
if ($date->format('w') == 6) {
$weekNumber++;
}
}
Run Code Online (Sandbox Code Playgroud)
每周都会有它的所有日子.
如果您只想要每周的第一天和最后一天,那么您可以使用array_shift并array_pop获取它们.例如,您可以使用第一周:
$wk1Start = array_shift($weeks[1]); //gives you first day of week 1
$wk1End = array_pop($weeks[1]); // give you the last day of week 1
Run Code Online (Sandbox Code Playgroud)
如果你想要每周的开始和结束日期,这里有一种方法:
$ranges = array_map(function($week) {
return 'start: ' . array_shift($week)
. ', end: ' . array_pop($week); },
$weeks);
Run Code Online (Sandbox Code Playgroud)
这是$ranges我的输出:
Array
(
[1] => start: 2014-10-01, end: 2014-10-04
[2] => start: 2014-10-05, end: 2014-10-11
[3] => start: 2014-10-12, end: 2014-10-18
[4] => start: 2014-10-19, end: 2014-10-25
[5] => start: 2014-10-26, end: 2014-10-31
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5014 次 |
| 最近记录: |