$a = 9;
echo "$a";//9
echo "
";
echo '$a';//$a
echo "
";
echo "${a}";//9
echo "
";
echo "\\\$a";//\$a
echo "
";
echo "$a"+"$a";//18
echo "
";
echo "$a"."$a";//99
setcookie("key","value");
print $_COOKIE['key'];
value
echo date('Y-m-d' , strtotime('last monday' , strtotime('2017-02-16')));
parent::方法名();
array_map();
echo 1+2+"6+3+1";//9
$a = array(1=>8,7=>2,4=>19,2=>'8',33,5=>68);
echo $a[2];//8
echo $a[8];//33
echo 1>>0;//1
echo 2>>1;//1
echo 3<<2;//12
truncate
user表
3306
倒置原则
\n
var aaa='abcdefg';
var bbb=aaa.substring(1,4);
alert(bbb);
ls dir
如输入abaccdeff,则输出b.
百度上的都是java和c的代码.
下面是自己写的PHP代码
$str = 'abaccdeff';
$length = strlen($str);
$arr = str_split($str);
foreach ($arr as $k => $v) {
$len = array_shift($arr);
if(in_array($len,$arr)){
array_push($arr,$len);
}else{
echo $len;
exit;
}
}
class Deque{
private $queue=array();
function addFirst($item){//头入队
return array_unshift($this->queue,$item);
}
function addLast($item){//尾入队
return array_push($this->queue,$item);
}
function removeFirst(){//头出队
return array_shift($this->queue);
}
function removeLast(){//尾出队
return array_pop($this->queue);
}
function show(){//显示
echo implode(" ",$this->queue);
}
function clear(){//清空
unset($this->queue);
}
function getFirst(){
return array_shift($this->queue);
}
function getLast(){
return array_pop($this->queue);
}
function getLength(){
return count($this->queue);
}
}
$q=new Deque();
$q->addFirst(1);
$q->addLast(5);
$q->removeFirst();
$q->removeLast();
$q->addFirst(2);
$q->addLast(4);
$q->show();// 2 4
问题:已知一个时间段,求该时间段内所有月份第一天的日期以及最后一天的日期,若某月某一天或最后一天不在该时间段内,则求该时间段的开始日期或结束日期.
已知参数:时间段的开始日期和结束日期.
返回要求:数组形式的日期列表,按月排序
示例:已知时间段的开始日期为2014年01月13日,结束日期为2014年05月19日,
则所求结果为:
[
['2014-01-13','2014-01-31'],
['2014-02-01','2014-02-28'],
['2014-03-01','2014-03-31'],
['2014-04-01','2014-04-30'],
['2014-05-01','2014-05-19']
]
自己写的代码如下:
//设置时区
date_default_timezone_set('PRC');
$arr = array();
$str1 = '2014-01-13';
$str2 = '2016-05-9';
//输出本月的最后一天
function getLastDay($str){
return date('Y-m-d',strtotime(date('Y-m-01',strtotime($str)).'+1 month'.'-1 day'));
}
//输出本月的第一天
function getFirstDay($str){
return date('Y-m-1',strtotime($str));
}
//给定日期返回第一天和最后一天组成的数组:$arr(firstday,lastday);
function getFL($str){
$T = array();
eval ('$T=['.'"'.getFirstDay($str).'"'.','.'"'.getLastDay($str).'"'.']'.";");
return $T;
}
//获得结果
function getresult($str1,$str2){
//开始日期的年
$y1 = date('Y',strtotime($str1));
//开始日期的月
$m1 = date('m',strtotime($str1));
//结束日期的年
$y2 = date('Y',strtotime($str2));
//结束日期的月
$m2 = date('m',strtotime($str2));
//时间段内的月份(不包括开始和结束的月份)----start
//计算循环次数
$m = (($y2-$y1)*12)+($m2-$m1-1);
for ($i=1; $i <=$m; $i++) {
$n = floor(($i+$m1)/12);//计算所夸年的计数
$y = $y1+$n;
$x = ($i+$m1)%12;//计算月份
$str3 = $y."-".$x;
$arr[] =getFL($str3);
//调用函数,返回数组(第一天,最后一天),把数组打入$arr数组中
}
//时间段内的月份(不包括开始和结束的月份)----end
//把开始日期插入数组头部
array_unshift($arr,array($str1,getLastDay($str1)));
//把结束日期压入数组尾部
array_push($arr,array(getFirstDay($str2),$str2));
return $arr;
}
$arr =getresult($str1,$str2);
echo ""
;
print_r($arr);