Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数组中的天转换为周范围内的日期_Php_Arrays_Date_Datetime - Fatal编程技术网

Php 将数组中的天转换为周范围内的日期

Php 将数组中的天转换为周范围内的日期,php,arrays,date,datetime,Php,Arrays,Date,Datetime,我有这样的日子: $days = ['Monday','Tuesday','Thursday','Friday','Sunday']; 我希望将其转换为一周范围内的日期格式,例如,如果今天的日期是2017年9月28日,我希望结果在数组中如下所示: $dateResult = ['28 Sep','29 Sep','01 Oct', '02 Oct', '03 Oct'] 它将以上述格式找到从今天开始的一周范围内的日期。首先,您需要将天数转换为数字。示例:1表示星期一,2表示星期二,依此类推

我有这样的日子:

$days = ['Monday','Tuesday','Thursday','Friday','Sunday'];
我希望将其转换为一周范围内的日期格式,例如,如果今天的日期是2017年9月28日,我希望结果在数组中如下所示:

$dateResult = ['28 Sep','29 Sep','01 Oct', '02 Oct', '03 Oct']

它将以上述格式找到从今天开始的一周范围内的日期。首先,您需要将天数转换为数字。示例:1表示星期一,2表示星期二,依此类推

//$days = ['Monday','Tuesday','Thursday','Friday','Sunday'];

$days_in_number = [1,2,4,5,7];

$r = array();
$today = date('N');
foreach($days_in_number as $x){
  $r[] = date('M-d',strtotime((($today-$x) * -1).' days'));
}

print_r($r);

注:此代码只适用于当前的1周。

< P>这将考虑从现在起的7天。

$days = ['Monday','Tuesday','Thursday','Friday','Sunday'];

$ret = [] ;
for( $i = 0; $i < 7; $i ++) {
    $t = strtotime('+' . $i . ' day') ;
    if( in_array( Date('l', $t), $days ) ) {
        $ret[] = Date('d M', $t) ;
    }
}
print_r($ret) ;
$days=[“周一”、“周二”、“周四”、“周五”、“周日”];
$ret=[];
对于($i=0;$i<7;$i++){
$t=标准时间(“+”.$i.“天”);
if(在_数组中(日期('l',$t),$days)){
$ret[]=日期($d M',$t);
}
}
印刷费($ret);

没有星期六。。。。9月1日9月2日?还是说十月?另外,以这种方式显示日期背后的逻辑是什么?@rtfm数组中的日期是可转换的日期,到目前为止,您尝试了什么?你有什么问题?你可以得到今天的日期,是吗?你可以很容易地找到如何在线解析一天的名字,你也可以找到如何格式化一个日期。这不是一个免费的编码服务,你需要先展示你自己的一些研究和编码工作。顺便说一句,你的例子没有多大意义。为什么数组的第一个元素是9月28日?今天不是星期一。你为什么要回到九月初?第一个数组似乎与第二个数组无关。为什么第一个忽略了星期六?一切都很不清楚。为什么9月30日不在这里?我们要展示4天吗?除了星期天?请解释清楚逻辑。对不起,没有得到我们的朋友,如果这对你不起作用。我不知道你在找什么。
for ($i = 0; $i < 7; $i++) {
    /* Get day name i.e Friday, Saturday etc */
    $day_name    =     date("l", strtotime("+$i day"));
    /* Store result in array only if day is present in $days */
    if (in_array($day_name, $days)) {
        $result[]    =    date("d M", strtotime("next " . $day_name, strtotime("+". $i ." day")));
    }
}
Array
(
 [0] => 29 Sep
 [1] => 01 Oct
 [2] => 02 Oct
 [3] => 03 Oct
 [4] => 05 Oct
)