PHP Date()日期时间函数详解

 更新时间:2016年11月25日 16:48  
php教程 date()日期时间函数详解
php date() 函数可把时间戳格式化为可读性更好的日期和时间。
语法

date(format,timestamp)参数 描述

format 必需。规定时间戳的

php教程 date()日期时间函数详解

php date() 函数可把时间戳格式化为可读性更好的日期和时间。

语法
date(format,timestamp)参数 描述
format 必需。规定时间戳的格式。
timestamp 可选。规定时间戳。默认是当前的日期和时间


要找出前一天的时间就是 time()-60*60*24;
要找出前一年的时间就是 time()*60*60*24*365
那么如何把这个数字换成日期格式呢 ,就要用到date()函数了

$t=time();
echo date("y-m-d h:i:s" ,$t);

每一个参数的格式分别表示:
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"
其它不在上列的字符则直接列出该字符


php 日期 - 格式化日期
date() 函数的第一个参数规定了如何格式化日期/时间。它使用字母来表示日期和时间的格式。这里列出了一些可用的字母:

d - 月中的天 (01-31)
m - 当前月,以数字计 (01-12)
y - 当前的年(四位数)
您可以在我们的 php date 参考手册中,找到格式参数中可以使用的所有字母。

可以在字母之间插入其他字符,比如 "/"、"." 或者 "-",这样就可以增加附加格式了:

<?php
echo date("y/m/d");
echo "<br />";
echo date("y.m.d");
echo "<br />";
echo date("y-m-d");
?>

 

php教程 自定字符串中的部分字符进行替换方法

substr_replace()函数对自定字符串中的部分字符进行替换
   语法:substr_replace(str,repl,start,[int length])
   语法说明:
   str——必选参数,指定要操作的原始字符串
   repl——指定替换后的新字符串
   start——指定替换字符串的开始位置
   length——可选参数,指定返回字符串的长度。
   使用substr_replace()函数替换字符串的应用实例:

实例代码:
<?php
$b=”手册”;
$c=”zero的php博客”;
echo substr_replace($c,$b,9,4);
?>
输出结果:
zero的php手册

参数 描述
string 必需。规定要检查的字符串。
replacement 必需。规定要插入的字符串。
start

必需。规定在字符串的何处开始替换。

  • 正数 - 在第 start 个偏移量开始替换
  • 负数 - 在从字符串结尾的第 start 个偏移量开始替换
  • 0 - 在字符串中的第一个字符处开始替换
charlist

可选。规定要替换多少个字符。

  • 正数 - 被替换的字符串长度
  • 负数 - 从字符串末端开始的被替换字符数
  • 0 - 插入而非替换

从数组中随机抽取一个或多个单元办法,我们会用到array_rand () ,想从数组中取出一个或多个随机的单元时相当有用。它接受 input 作为输入数组和一个可选的参数 num_req,指明了你想取出多少个单元 - 如果没有指定,默认为 1。 如果你只取出一个,array_rand() 返回一个随机单元的键名,否则就返回一个包含随机键名的数组

<?php教程
srand((float) microtime() * 10000000);
$input = array("neo", "morpheus", "trinity", "cypher", "tank");
$rand_keys = array_rand($input, 2);
print $input[$rand_keys[0]] . "n";
print $input[$rand_keys[1]] . "n";
?>

array_rand() 定义和用法

array_rand() 函数从数组中随机选出一个或多个元素,并返回。

第二个参数用来确定要选出几个元素。如果选出的元素不止一个,则返回包含随机键名的数组,否则返回该元素的键名。

注释:自 php 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现已被自动完成。

语法
array_rand(array,number)参数 描述
array 必需。规定输入的数组参数。
number 可选。默认是 1。规定返回多少个随机的元素。
例子 1

<?php
$a=array("a"=>"dog","b"=>"cat","c"=>"horse");
print_r(array_rand($a,1));
?>

php教程 method_exists 检测类中是否包括函数

method_exists() 函数的语法如下:bool method_exists ( object object, string method_name)


method_exists() 函数的作用是检查类的方法是否存在。


如果 method_name 所指的方法在 object 所指的对象类中已定义,则返回 true,否则返回 false

 

class a {
    public function xx(){
        echo 'xx';
    }
   
    public function yy() {
        echo 'yy';
    }
}

$obj = new a();

var_dump(method_exists($obj, 'xx'));
var_dump(method_exists($obj, 'xx'));
var_dump(method_exists($obj, 'xx'));

测试结果都为true

class a {
    public function xx(){
        echo 'xx';
    }
   
    public function yy() {
        echo 'yy';
    }

    public function yy() {
        echo 'yy';
    }
}

$obj = new a();
$obj->yy();
$obj->yy();

以上语句报错。
今天才发现原来php的对象属性是不区分大小写的

在这里我们全用到时间戳

mktime(hour,minute,second,month,day,year,[is_dst])
    其参数可以从右向左省略,任何省略的参数都会被设置成本地日期和时间的当前值。
   

参数 描述
hour 可选。规定小时。
minute 可选。规定分钟。
second 可选。规定秒。
month 可选。规定用数字表示的月。
day 可选。规定天。
year 可选。规定年。在某些系统上,合法值介于 1901 – 2038 之间。不过在 php教程 5 中已经不存在这个限制了。
is_dst 可选。如果时间在日光节约时间(dst)期间,则设置为1,否则设置为0,若未知,则设置为-1。自 5.1.0 起,is_dst 参数被废弃。因此应该使用新的时区处理特性

   
在日常生活中我们要经常比较时间的早晚,对于我们来说判断时间的大小很简单。但是时间的比较不只是单纯的数字大小的比较,因此相对来说还是比较复杂。那么在php中通过什么方式来比较两个时间的大小呢?

    要比较两个时间的大小,我们需要将时间转化为时间戳格式,然后再进行比较这是最常用的方法。常用到的函数是:strtotime()
    语法格式:strtotime(time,now)
    如果time是绝对时间,则now参数不起作用
    如果time是相对时间,则相对应的参数则对应函数就是now来提供,如果没有提供now参数,那么相对应的时间就是当前的本地时间。

实例:比较两个绝对时间的大小
代码:

<?php
$zero1=date(“y-m-d h:i:s”);
$zero2=”2010-11-29 21:07:00′;
echo “zero1的时间为:”.$zero1.”<br>”;
echo “zero2的时间为:”.$zero2.”<br>”;
if(strtotime($zero1)<strtotime($zero2)){
 echo “zero1早于zero2′;
}else{
 echo “zero2早于zero1′;
}
?>


输出结果:
zero1的时间为:2010-11-30 21:12:55
zero2的时间为:2010-11-29 21:07:00
zero2早于zero1

注:可以根据实例发散思维

    计算两个日期的差值
    奥运会倒计时,亚运会倒计时,生日倒计时这些倒计时都可以通过计算两个日期的差值来实现,同样需要用到strottime()函数。
    实现倒计时需要将两个时间的差值整数化,需要用到函数ceil()
    ceil()函数的作用是求不小于给定实数的最小整数

实例:倒计时小程序
实例代码:

<?php
$zero1=strtotime (date(“y-m-d h:i:s”)); //当前时间
$zero2=strtotime (“2011-2-03 24:00:00′);  //过年时间
$guonian=ceil(($zero2-$zero1)/86400); //60s*60min*24h
echo “离过年还有<strong>$guonian</strong>天!”;
?>


输出结果:
离过年还有66天!

strtotime()函数解析

定义和用法
strtotime() 函数将任何英文文本的日期时间描述解析为 unix 时间戳。

语法
strtotime(time,now)参数 描述
time 规定要解析的时间字符串。
now 用来计算返回值的时间戳。如果省略该参数,则使用当前时间。 

说明
该函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 unix 时间戳(自 january 1 1970 00:00:00 gmt 起的秒数),其值相对于 now 参数给出的时间,如果没有提供此参数,则用系统当前时间

 

日期时间时间函数函数