首页 开发编程 正文

php怎么查询时间 php常用算法和时间复杂度

//遍历树O(log2n)functionbianli($p){$a=array();}}return$a;=1){return$a;$a[0]){$l[]=$a[$i];}else{$r[]=$a[$i];}}$l=kuaisu($l);$a[$j]=$a[$i];$a[$i]=$t;$a[$j-1]=$a[$j];$a[$j]=$...

php怎么查询时间,php常用算法和时间复杂度?

按数量级递增排列,常见的时间复杂度有:常数阶O(1),对数阶O(log2n),线性阶O(n),线性对数阶O(nlog2n),平方阶O(n2),立方阶O(n3)

复制代码 代码如下:

//二分查找O(log2n)

function erfen($a,$l,$h,$f){

if($l >$h){ return false;}

$m = intval(($l+$h)/2);

if ($a[$m] == $f){

return $m;

}elseif ($f < $a[$m]){

return erfen($a, $l, $m-1, $f);

}else{

return erfen($a, $m+1, $h, $f);

}

}

$a = array(1,12,23,67,88,100);

var_dump(erfen($a,0,5,1));

//遍历树O(log2n)

function bianli($p){

$a = array();

foreach (glob($p.'/*') as $f){

if(is_dir($f)){

$a = array_merge($a,bianli($f));

}else{

$a[] = $f;

}

}

return $a;

}

//阶乘O(log2n)

function jc($n){

if($n<=1){

return 1;

}else{

return $n*jc($n-1);

}

}

//快速查找 O(n *log2(n))

function kuaisu($a){

$c = count($a);

if($c <= 1){return $a;}

$l = $r = array();

for ($i=1;$i<$c;$i++){

if($a[$i] < $a[0]){

$l[] = $a[$i];

}else{

$r[] = $a[$i];

}

}

$l = kuaisu($l);

$r = kuaisu($r);

return array_merge($l,array($a[0]),$r);

}

//插入排序 O(N*N)

function charu($a){

$c = count($a);

for($i=1;$i<$c;$i++){

$t = $a[$i];

for($j=$i;$j>0 && $a[$j-1]>$t;$j--){

$a[$j] = $a[$j-1];

}

$a[$j] = $t;

}

return $a;

}

//选择排序O(N*N)

function xuanze($a){

$c = count($a);

for($i=0;$i<$c;$i++){

for ($j=$i+1;$j<$c;$j++){

if($a[$i]>$a[$j]){

$t = $a[$j];

$a[$j] = $a[$i];

$a[$i] = $t;

}

}

}

return $a;

}

//冒泡排序 O(N*N)

function maopao($a){

$c = count($a);

for($i=0;$i<$c;$i++){

for ($j=$c-1;$j>$i;$j--){

if($a[$j] < $a[$j-1]){

$t = $a[$j-1];

$a[$j-1] = $a[$j];

$a[$j] = $t;

}

}

}

return $a;

}

复制代码 代码如下:

/**

* 排列组合

* 采用二进制方法进行组合的选择,如表示5选3时,只需有3位为1就可以了,所以可得到的组合是 01101 11100 00111 10011 01110等10种组合

*

* @param 需要排列的数组 $arr

* @param 最小个数 $min_size

* @return 满足条件的新数组组合

*/

function plzh($arr,$size=5) {

$len = count($arr);

$max = pow(2,$len);

$min = pow(2,$size)-1;

$r_arr = array();

for ($i=$min; $i<$max; $i++){

$count = 0;

$t_arr = array();

for ($j=0; $j<$len; $j++){

$a = pow(2, $j);

$t = $i&$a;

if($t == $a){

$t_arr[] = $arr[$j];

$count++;

}

}

if($count == $size){

$r_arr[] = $t_arr;

}

}

return $r_arr;

}

$pl = pl(array(1,2,3,4,5,6,7),5);

var_dump($pl);

PHP取出固定日期时间当中的日期怎么取?

php代码如下代码解释d表示的是日(其完整格式“Y-m-d H:i:s”)Y:代表年m:代表月d:代表日H:代表时i:代表分s:代表秒1452126507是时间戳

PHP获取当前日期所在星期?

代码如下: // 获取指定日期所在星期的开始时间与结束时间 function getWeekRange($date){ $ret=array(); $timestamp=strtotime($date); $w=strftime('%u',$timestamp); $ret['sdate']=date('Y-m-d 00:00:00',$timestamp-($w-1)*86400); $ret['edate']=date('Y-m-d 23:59:59',$timestamp+(7-$w)*86400); return $ret; } // 获取指定日期所在月的开始日期与结束日期 function getMonthRange($date){ $ret=array(); $timestamp=strtotime($date); $mdays=date('t',$timestamp); $ret['sdate']=date('Y-m-1 00:00:00',$timestamp); $ret['edate']=date('Y-m-'.$mdays.' 23:59:59',$timestamp); return $ret; } // 以上两个函数的应用 function getFilter($n){ $ret=array(); switch($n){ case 1:// 昨天 $ret['sdate']=date('Y-m-d 00:00:00',strtotime('-1 day')); $ret['edate']=date('Y-m-d 23:59:59',strtotime('-1 day')); break; case 2://本星期 $ret=getWeekRange(date('Y-m-d')); break; case 3://上一个星期 $strDate=date('Y-m-d',strtotime('-1 week')); $ret=getWeekRange($strDate); break; case 4: //上上星期 $strDate=date('Y-m-d',strtotime('-2 week')); $ret=getWeekRange($strDate); break; case 5: //本月 $ret=getMonthRange(date('Y-m-d')); break; case 6://上月 $strDate=date('Y-m-d',strtotime('-1 month')); $ret=getMonthRange($strDate); break; } return $ret; }

如何利用php获取当前具体日期时间?

使用date函数。date ( string $format [, int $timestamp ] )返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则返回本地当前时间。

php显示时间常用方法小结?

一、PHP函数Date()获取当前时间

代码如下:<?php echo $showtime=date("Y-m-d H:i:s");?>

显示的格式: 年-月-日 小时:分钟:秒

相关参数:

a:"am"或者"pm"

A:"AM"或者"PM"

d:几日,二位数字,若不足二位则前面补零,如: "01"至"31"

D:星期几,三个英文字母,如: "Fri"

F:月份,英文全名,如: "January"

h:12 小时制的小时,如: "01"至"12"

H:24 小时制的小时,如: "00"至"23"

g:12 小时制的小时,不足二位不补零,如: "1"至12"

G:24 小时制的小时,不足二位不补零,如: "0"至"23"

i:分钟,如: "00"至"59"

j:几日,二位数字,若不足二位不补零,如: "1"至"31"

l:星期几,英文全名,如:"Friday"

m:月份,二位数字,若不足二位则在前面补零;如: "01"至"12"

n:月份,二位数字,若不足二位则不补零;如:"1"至"12"

M:月份,三个英文字母;如:"Jan"

s:秒;如:"00"至"59"

S:字尾加英文序数,二个英文字母;如:"th"、"nd"

t:指定月份的天数;如:"28"至"31"

U:总秒数

w:数字型的星期几,如: "0"(星期日)至"6"(星期六)

Y:年,四位数字;如:"1999"

y:年,二位数字;如:"99"

z:一年中的第几天;如:"0"至"365"

二、PHP5中Date()函数获取时间相差8小时问题的解决方法

只需在输出时间之前加个定义:date_default_timezone_set("PRC");,代码:

<?php

date_default_timezone_set("PRC");

echo date("Y-m-d H:i:s");

?>

三、PHP获取文件创建时间和最后修改时间的函数

filemtime(string filename):返回文件上次被修改的时间,出错时返回false。时间以Unix时间戳的方式返回,可用于Date()。

filectime(string filename):返回文件上次inode被修改的时间,如果出错则返回false。时间以Unix时间戳的方式返回。

fileatime(string filename):返回文件上次被访问的时间,如果出错则返回false。时间以Unix时间戳的方式返回。

四、PHP比较两个日期相差天数

代码:

<?php

echo (strtotime("2008-08-24 00:00:00")-strtotime("2008-08-08 00:00:00"))/86400;

?>

本文转载自互联网,如有侵权,联系删除