`
wangyalei
  • 浏览: 51779 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

php学习笔记(日期函数用法总结)

    博客分类:
  • PHP
阅读更多

 php中对时间日期的处理时相对简单的,php中提供了date/time 函数允许您提取并格式化服务器上的日期和时间。

 date/time函数的行为受到 php.ini 中设置的影响。当然我们可以手动更改其中的配置项参数,不过最好不要更改。

 php 为我们提供了不少函数来操控时间,虽然多 但用的不多。

 

 

<?php
/*
 * Created on 2010-8-20
 *
 * @author wangyalei
 *
 */


//1.date() 函数格式化一个本地时间/日期
	//format 必需。规定如何返回结果。 timestamp 可选。规定时间戳。默认是当前的日期和时间。
	//date(format,timestamp)
	
	//  d - 月中的天 (01-31)
	//	m - 当前月,以数字计 (01-12)
	//	Y - 当前的年(四位数)
	echo date("Y/m/d");
	echo "<br />";
	echo date("Y.m.d");
	echo "<br />";
	echo date("Y-m-d");
	//输出
	//2010/08/20
	//2010.08.20
	//2010-08-20
	
	//设置时区
	 date_default_timezone_set("Asia/Shanghai");
	 $now = getdate();
	 print "{$now['hours']}:{$now['minutes']}:{$now['seconds']}\t";//22:13:57
	 $now = localtime();
	 print "$now[2]:$now[1]:$now[0]";// 22:14:1

//2。mktime() 函数返回一个日期的 Unix 时间戳。

	 //语法  mktime(hour,minute,second,month,day,year,is_dst)
	
	 //参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。

   $then = mktime(23,31,22,8,21,2010);
   echo $then;//1282433482 这个就是当前的时间戳
   echo "<br>";
  //把时间戳 转换为正常时间格式
   echo "day is ".date("Y/m/d", $then);//day is 2010/08/21

   echo "<br>";

    //获取明天的日期
    $tomorrow = mktime(0,0,0,date("m"),date("d")+1,date("Y"));
    echo "Tomorrow is ".date("Y/m/d", $tomorrow);
     //和mktime 一般差不多
    echo gmmktime(23,31,22,8,21,2010);//221282433482


//4 strftime() 函数根据区域设置格式化本地时间/日期。
   //strftime(format,timestamp) format 可选。规定如何返回结果。timestamp 可选。
    $then = mktime(23,31,22,8,21,2010);
    print strftime("%c",$then);//08/21/10 23:31:22
	$then = gmmktime(23,31,22,8,21,2010);
	echo "<br>";
    print strftime("%c",$then);//08/21/10 23:31:22

  // strftime 和 date 相比 更容易生成内部带有插值的时间和日期值的字符串
    date_default_timezone_set("Asia/Shanghai");
    print strftime(" 现在时间 %I, %P  %B %d,%Y");//现在时间 10, August 22,2010
    print "现在时间".date('h a ').date('F d,y');//现在时间10 am August 22,10

//5计算两个时间差
	
	$now_1 = mktime(0,0,0,8,21,2010);
	$now_2 = mktime(0,0,0,8,22,2010);
	$diff_seconds = $now_2-$now_1;
	 //相差 的月
	 $diff_week = floor($diff_seconds/604800);//60*60*24*7
	 //相差的天
	 $diff_day = floor($diff_seconds/86400);//60*60*24
	
	 echo "相差 时间为".$diff_week."个月".$diff_day."天";//相差 时间为0个月1天


//6验证日期

//checkdate($month,$day,$year);// return  true  or false

echo checkdate(2,30,2005) ? "valid" : "invalid";

//看一个例子

	function pc_checkdate($month,$day,$year){
	
	
		$min_age = 18;
		$max_age = 250;
	
		if(!checkdate($month,$day,$year)){
			return false;
		}
	
		list($this_year,$this_month,$this_day) = explode(",",date("Y,m,d"));
		$min_year = $this_year - $max_age;
		$max_year = $this_year - $min_age;
	
		if(($year>=$min_year)&&($year<=$max_year)){
			return true;
		}else{
			return false;
		}
	}
	
	if(pc_checkdate(12,3,2001)){
	
		print "0k";
	}else{
	
		print "no";
	}

//7 从字符串中解析时间
	//strtotime() 函数将任何英文文本的日期时间描述解析为 Unix 时间戳。
	//strtotime(time,now)
	//time 规定要解析的时间字符串。
	//now 用来计算返回值的时间戳。如果省略该参数,则使用当前时间。
	//成功则返回时间戳,否则返回 FALSE。在 PHP 5.1.0 之前本函数在失败时返回 -1。
	
		echo(strtotime("now"));
	echo "<br>";
	echo(strtotime("3 October 2005"));
	echo "<br>";
	echo(strtotime("+5 hours"));
	echo "<br>";
	echo(strtotime("+1 week"));
	echo "<br>";
	echo(strtotime("+1 week 3 days 7 hours 5 seconds"));
	echo "<br>";
	echo(strtotime("next Monday"));
	echo "<br>";
	echo(strtotime("last Sunday"));


//8 使用正侧表达式 解析时间
//如果要从字符串中解析时间 你不知道其格式 就不能使用 strtotime

	$date = '2008-12-2 12:30:21';
	preg_match('/(\d{4})-(\d{2})-(\d{2})(\d{2}):(\d{2}):(\d{2})/',$date,$datearry);


//分割时间

	$date_arry=preg_split("/[-:]/",$date);
	var_dump($date_arry);
	//array(5) {
	//  [0]=>
	//  string(4) "2008"
	//  [1]=>
	//  string(2) "12"
	//  [2]=>
	//  string(4) "2 12"
	//  [3]=>
	//  string(2) "30"
	//  [4]=>
	//  string(2) "21"
	//}

?>

 

date -- 格式化一个本地时间/日期 的 format 字符 在手册中讲解的非常详细了在这就不多废话了

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>else if语句的应用</title>
</head>

<body>
<?php
	$moth = date("n");								//设置月份变量$moth
	$today = date("j");								//设置日期变量$today
	if ($today >= 1 and $today <= 10){			//判断日期变量是否在1-10之间
		echo "今天是".$moth."月".$today."日上旬";	//如果是,说明是上旬
	}elseif($today > 10 and $today <= 20){			//否则判断日期变量是否在11-20之间
		echo "今天是".$moth."月".$today."日中旬";	//如果是,说明是中旬
	}else{											//如果上面两个判断都不符合要求,则输出默认值
		echo "今天是".$moth."月".$today."日下旬";	//说明是本月的下旬
	}
?>

</body>
</html>

 

现在说一下setlocal定义和用法setlocale() 函数设置地区信息(地域信息)。

地区信息是针对一个地理区域的语言、货币、时间以及其他信息。

该函数返回当前的地区设置,若失败则返回 false。

语法

setlocale(constant,location)
constant 必需。规定应该设置什么地区信息。

可用的常量:

LC_ALL - 包括下面的所有选项 
LC_COLLATE -排序次序 
LC_CTYPE - 字符类别及转换(例如所有字符大写或小写) 
LC_MESSAGES - 系统消息格式 
LC_MONETARY - 货币格式 
LC_NUMERIC - 数字格式 
LC_TIME - 日期/时间格式 
 
location 必需。规定把地区信息设置为什么国家/地区。如果 location 参数是数组,setlocale() 会尝试每个数组元素,直到找到合法的语言或地区代码为止。如果某个地区在不同的系统上拥有不同的名称,这一点很有用。
 

 

提示和注释

注释:setlocale() 函数仅针对当前脚本改变地区信息。

提示:可以通过 setlocale(LC_ALL,NULL) 把地区信息设置为系统默认。 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>switch多重判断语句</title>
</head>

<body>
<?php
	setlocale(LC_TIME,null);								//设置本地环境
	$weekday = strftime("%A");								//声明变量$weekday的值
	switch($weekday){										//switch语句,判断$weekday的值
		case "星期一":										//如果变量的值为“星期一”
			echo "今天是$weekday ,新的一周开始了。";
			break;
		case "星期二":										//如果变量的值为“星期二”
			echo "今天是$weekday ,保持昨天的好状态,继续努力!";
			break;
		case "星期三":										//如果变量的值为“星期三”
			echo "今天是$weekday ,真快啊,过去1/2周了。";
			break;
		case "星期四":										//如果变量的值为“星期四”
			echo "今天是$weekday ,还有1天放假了.";
			break;
		case "星期五":										//如果变量的值为“星期五”
			echo "今天是$weekday ,呵呵,明天有什么安排呢!。";
			break;
		default:											//默认值
			echo "今天是$weekday , 呵呵。";
			break;
	}
?>

</body>
</html>

 

 

分享到:
评论

相关推荐

    php学习笔记 数组的常用函数

    * * 属性可以封装: * 只要一个变量,需要在多个方法使用,就将这个变量声明为成员属性,可以直接在这个对象中的所有方法中使用 * * 成员属性,相当于这个对象中的全局变量 * * 成员属性都会在方法中使用,成员属性值...

    laravel学习笔记

    laravel零基础到精通,从入门、路由、视图、session、数据库、Blade模板...如果你是有经验的开发人员可以快速掌握框架内容,如果你是php开发人员则可以查阅各项函数说明以及用法,笔记很全,学习Laravel可以下载看看。

    php学习笔记之字符串常见操作总结

    主要介绍了php学习笔记之字符串常见操作,结合实例形式总结分析了php字符串的定义、单引号与双引号的用法以及常见字符串操作函数使用技巧,需要的朋友可以参考下

    php cookie使用方法学习笔记分享

    PHP setcookie() 函数向客户端发送一个 HTTP cookie。cookie 是由服务器发送到浏览器的变量。cookie 通常是服务器嵌入到用户计算机中的小文本文件。每当计算机通过浏览器请求一个页面,就会发送这个 cookie。cookie ...

    明仔PHP面向对象(六日通)教程

    (五)面向对象开发的学习笔记 5-0 面向对象开发的学习笔记 5-1 对象中的$this关键字 5-2 初始化对象函数 __construct() 5-3 析构函数 __destruct() 5-4 不使用$this的简单例子 5-5 使用$this的简单例子 5-6 ...

    php学习笔记之mb_strstr的基本使用

    主要给大家介绍了关于php学习笔记之mb_strstr的基本使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

    Symfony2学习笔记之控制器用法详解

    本文实例讲述了Symfony2控制器用法。分享给大家供大家参考,具体如下: 一个controller是你创建的一个PHP函数,它接收HTTP请求(request)并创建和返回一个HTTP回复(Response)。回复对象(Response)可以是一个HTML...

    php学习笔记 类的声明与对象实例化

    在类中声明成员属性时,前面必须有修饰词,当不确定使用哪个词时,使用var或public * 一个文件只保存一个类,文件名中包含类名,文件:类名.class.php * 类名的写法: * 变量:aaaBbbCcc * 函数:aaaBbbCcc * 常量:...

    php学习笔记 [预定义数组(超全局数组)]

    在函数中直接可以使用这些数组 * * $_GET //经由URL请求提交至脚本的变量 * $_POST //经由HTTP POST 方法提交到脚本的变量 * $_REQUEST //经由GET , POST和COOKIE机制提交 到脚本的变量 * $_FILES //经由htt

    php session 预定义数组

    您可能感兴趣的文章:PHP实现的自定义数组排序函数与排序类示例PHP中定义数组常量(array常量)的方法php定义数组和使用示例(php数组的定义方法)php学习笔记 [预定义数组(超全局数组)]PHP 数组教程 定义数组用php...

    思库教育PHP零基础培训+进阶课程+PHP项目开发实战 21G PHP零基础学习视频教程.txt

    │ │ └笔记.doc │ ├ │ │ ├[思库教育]第25集 斐波纳挈数列.mp4 │ │ └[思库教育]第26集 数组的遍历.avi │ ├ │ │ ├[思库教育]第27集 猴子吃桃.avi │ │ ├[思库教育]第28集 杨辉三角.avi │ │ ├[思库...

    php中文手册

    PHP,即“PHP: Hypertext Preprocessor”,是一种被广泛使用的开放源代码多用途脚本语言,尤其适用于 web 开发并可以嵌入到 HTML 中去。其语法利用了 C,Java 和 Perl,非常容易学习。该语言的主要目标是让 web 开发...

    ThinkPHP中类的构造函数_construct()与_initialize()的区别详解

    相信熟悉THINKPHP的phper基本上都很熟悉_initialize()这个方法,我们似乎也很少去使用_construct() ,除非自己写插件,否则还真是很少用到。 今天查看代码突然看到_construct()这个php自带的构造方法,我的第一...

Global site tag (gtag.js) - Google Analytics