我有像这样的日子:
$days = ['Monday','Tuesday','Thursday','Friday','Sunday'];
我想将其转换为一周范围的日期格式,例如,如果今天的日期是2017年9月28日,我希望结果在数组中看起来像这样:
$dateResult = ['28 Sep','29 Sep','01 Oct', '02 Oct', '03 Oct']
它会在今天开始的一周范围内找到上述格式的日期
答案 0 :(得分:0)
这将考虑从今天起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) ;
答案 1 :(得分:0)
var i=0;
var lat=29;
var lt=0;
var ln=0;
var lon=345;
var n=0;
var c=1;
var ti=0;
var num=0;
var sper=0;
var temp=0;
var flag=0;
var mat = []; // 0=time 1=latitude 2=longitude 3=data
for(var nans=0; nans<100000; nans++)
{
mat[nans] = new Array(4);
}
var n;
mat[ln]=lon;
//open the file
var fs = require('fs');
var ffile = 'file.txt';
document.write("sas");
// contenuto del file in memoria.
fs.readFile(ffile, function (err, logData) {
if (err) throw err;
// logData è un Buffer, converti in Stringa.
var t = logData.toString();
var lung = t.length;
//console.log(lung);
var results = {};
//salto i commenti iniziali
while (n!='#')
{
i=i+1;
n=t[i];
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
ln=ln+1;
mat[ln][2]=lon;
mat[c][0]=temp;
//start of cicle
for( ;n!=';' && i<lung;i++)
{
n=t[i];
if (t[i]=='#' && t[i+1]=='#' && t[i+2]=='#')
{
flag=1;
i=i+4;
if (lat+1>75)
{
lat=30;
lt=lt+1;
mat[lt][1]=lat;
temp=temp+1;
}
else
{
lt=lt+1;
lat=lat+1;
mat[lt][1]=lat;
}
}
if (n==',')
{
mat[c][0]=temp;
ti=i;
while (t[ti-1]!=',' && t[ti-1]!=';' && t[ti-1]!='\n' && t[ti-1]!=' ' && t[ti-1]!='#' )
{
ti=ti-1;
}
ti=i-ti;
if (ti==0)
{
ti=sper;
}
else
{
sper=ti;
}
sper=ti;
var str= t.substring(i,i-ti);
num = parseFloat(str);
mat[c][3]=num;
if (lon+1>420)
{
lon=345;
ln=ln+1;
mat[ln][2]=lon;
}
else
{
lon=lon+1;
ln=ln+1;
mat[ln][2]=lon;
}
c++;
if (flag==0)
{
lt=lt+1;
mat[lt][1]=lat;
}
else
{
flag=0;
}
}
}
i=i-1;
///////////////////////////////////////////////////////////////////////////////// end of cicle
var st=c;
mat[st][2]=mat[st-1][2]+1;
mat[st][1]=mat[st-1][1];
for(c=1;c<st;c++)
{
console.log(c+' lat:'+mat[c][1]+' lon:'+mat[c][2]+' dato:'+mat[c][3]+' temp:'+mat[c][0]);
}
var str= t.substring(i,i-sper);
num = parseFloat(str);
mat[c][3]=num;
mat[c][0]=temp;
console.log(c+' lat:'+mat[c][1]+' lon:'+mat[c][2]+' dato:'+mat[c][3]+' temp:'+mat[c][0]);
console.log('fine');
//console.log(' lon:'+mat[clon][3]+' lat:'+lat+' '+mat[ffc-1][4] );
//console.log(ftemp + ' fis= '+ fis);
});
输出:
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")));
}
}
答案 2 :(得分:-1)
首先,您需要将天数转换为数字。例如: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周。