PHP常用的日期和时间总结

 更新时间:2016年11月25日 17:30  点击:1660
本文章总结了PHP常用的日期和时间一些常用的用法,有需要的朋友可参考一下

1,年-月-日
echo date('Y-m-j');
2007-02-6

echo date('y-n-j');
07-2-6

大写Y表示年四位数字,而小写y表示年的两位数字;
小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字。

echo date('Y-M-j');
2007-Feb-6

echo date('Y-m-d');
2007-02-06

大写M表示月份的3个缩写字符,而小写m则表示月份的数字(带前导0);
没有大写的J,只有小写j表示月份的日期,无前导o;若需要月份带前导则使用小写d。

echo date('Y-M-j');
2007-Feb-6

echo date('Y-F-jS');
2007-February-6th

大写M表示月份的3个缩写字符,而大写F表示月份的英文全写。(没有小写f)
大写S表示日期的后缀,比如“st”、“nd”、“rd”和“th”,具体看日期数字为何。

小结:
表示年可以用大写的Y和小写y;
表示月可以用大写F、大写M、小写m和小写n(分别表示字符和数字的两种方式);
表示日可以用小写d和小写j,大写S表示日期的后缀。


2,时:分:秒

默认情况下,PHP解释显示的时间为“格林威治标准时间”,与我们本地的时间相差8个小时。

echo date('g:i:s a');
5:56:57 am

echo date('h:i:s A');
05:56:57 AM

小写g表示12小时制,无前导0,而小写h则表示有前导0的12小时制。
当使用12小时制时需要表明上下午,小写a表示小写的“am”和“pm”,大写A表示大写的“AM”和“PM”。

echo date('G:i:s');
14:02:26

大写G表示24小时制的小时数,但是不带前导的;使用大写的H表示带前导的24小时制小时数

小结:
字母g表示小时不带前导,字母h表示小时带前导;
小写g、h表示12小时制,大写G、H表示24小时制。

3,闰年、星期、天

echo date('L');
今年是否闰年:0

echo date('l');
今天是:Tuesday

echo date('D');
今天是:Tue

大写L表示判断今年是否闰年,布尔值,为真返回1,否则为0;
小写l表示当天是星期几的英文全写(Tuesday);
而使用大写D表示星期几的3个字符缩写(Tue)。

echo date('w');
今天星期:2

echo date('W');
本周是全年中的第 06 周

小写w表示星期几,数字形式表示
大写W表示一年中的星期数

echo date('t');
本月是 28 天

echo date('z');
今天是今年的第 36 天

小写t表示当前月份又多少天
小写z表示今天是本年中第几天

 

将日间日期转换成时间时间戳

 strtotime(time,now)参数 描述
 time 规定要解析的时间字符串。
 now 用来计算返回值的时间戳。如果省略该参数,则使用当前时间。
 
 <?php
 echo strtotime("now"), "n";
 echo strtotime("10 September 2000"), "n";
 echo strtotime("+1 day"), "n";
 echo strtotime("+1 week"), "n";
 echo strtotime("+1 week 2 days 4 hours 2 seconds"), "n";
 echo strtotime("next Thursday"), "n";
 echo strtotime("last Monday"), "n";
 ?>
 
 <?php
 $str = 'Not Good';
 
 // previous to PHP 5.1.0 you would compare with -1, instead of false
 if (($timestamp = strtotime($str)) === false) {
  echo "The string ($str) is bogus";
 } else {
  echo "$str == " . date('l dS of F Y h:i:s A', $timestamp);
 }
 ?>
 
 再看strtotime实例
*/
 echo strtotime('2010-2-14'),"<br />";
 echo date('Y-m-d',strtotime('2010-2-14'));
 
 //输出值
 
 1266076800
 2010-02-14
 
 //你应该在strtotime(),你决定什么不能做。例如
 <?php

# on 2/8/2010
date('m/d/y', strtotime('first day')); # 02/01/10
date('m/d/y', strtotime('last day')); # 02/28/10
date('m/d/y', strtotime('last day next month')); # 03/31/10
date('m/d/y', strtotime('last day last month')); # 01/31/10
date('m/d/y', strtotime('2009-12 last day')); # 12/31/09 - this doesn't work if you reverse the order of the year and month
date('m/d/y', strtotime('2009-03 last day')); # 03/31/09
date('m/d/y', strtotime('2009-03')); # 03/01/09
date('m/d/y', strtotime('last day of march 2009')); # 03/31/09
date('m/d/y', strtotime('last day of march')); # 03/31/10
?>


更多相关函数


date_default_timezone_set('PRC'); //默认时区
 $t = time();
 $today=date("Y-m-d",time());
 echo "今天:$today<br />";
 echo "某一天:".date("Y-m-d",strtotime("18 june 2008"))."<br />";
 echo "昨天:".date("Y-m-d",strtotime("-1 day"))."<br />";
 echo "明天:".date("Y-m-d",strtotime("+1 day"))."<br />";
 echo "一周后:".date("Y-m-d",strtotime("+1 week"))."<br />";
 echo "一周零两天四小时两秒后:".date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds"))."<br />";
 echo "下个星期四:".date("Y-m-d",strtotime("next Thursday"))."<br />";
 echo "上个周一:".date("Y-m-d",strtotime("last Monday"))."<br />";
 echo "一个月前:".date("Y-m-d",strtotime("last month"))."<br />";
 echo "一个月后:".date("Y-m-d",strtotime("+1 month"))."<br />";
 echo "十年后:".date("Y-m-d",strtotime("+10 year"))."<br />";
 echo "<br />=======================================================<br /><br />";
 $w = date("w",time()); //获取今天是本周周几
 echo "今天是星期$w<br />";
 $d=array("日","一","二","三","四","五","六");
 $whatday="星期".$d[date("w",strtotime($today))]; //获取今天星期几
 echo "今天是$whatday<br />";
 $d0 = date("Y-m-d",strtotime("-$w day",$t)); //周开始
 echo "本周周日是:$d0<br />";
 $d6 = date("Y-m-d",strtotime((6-$w)." day",$t)); //周结束
 echo "本周周六是:$d6<br />";
 
 echo "本周周日是:".date("Y-m-d",strtotime("Sunday"))."<br />";  //周开始
 echo "本周周六是:".date("Y-m-d",strtotime("Saturday"))."<br />";  //周结束
 echo "上周周日是:".date("Y-m-d",strtotime("last Sunday"))."<br />";  //上周开始
 echo "上周周六是:".date("Y-m-d",strtotime("last Saturday"))."<br />";  //上周结束
 echo "<br />=======================================================<br /><br />";
 $time = abs((strtotime("2012-12-21") - strtotime(date("Y-m-d")))/86400);//获取两个日期之间的天数差
 echo "距离世界末日还有:$time 天<br />";  //上周结束

php用户注册时常用的一些常用总结,包括有检测是否符合用户名格式 检测是否符合用户名格式 检测参数的值是否相同 检测参数是否为中文等等。
 代码如下 复制代码
<?php
/**
* Check检测类
*/
Class Check{
 /**
 * IsUsername函数:检测是否符合用户名格式
 * $Argv是要检测的用户名参数
 * $RegExp是要进行检测的正则语句
 * 返回值:符合用户名格式返回用户名,不是返回false
 */
 function IsUsername($Argv){
  $RegExp=/^[a-zA-Z0-9_]{3,16}$/; //由大小写字母跟数字组成并且长度在3-16字符直接
  return preg_match($RegExp,$Argv)?$Argv:false;
 }
       
 /**
 * IsMail函数:检测是否为正确的邮件格式
 * 返回值:是正确的邮件格式返回邮件,不是返回false
 */
 function IsMail($Argv){
  $RegExp=/^[a-z0-9][a-z.0-9-_] @[a-z0-9_-] (?:.[a-z]{0,3}.[a-z]{0,2}|.[a-z]{0,3}|.[a-z]{0,2})$/i;
  return preg_match($RegExp,$Argv)?$Argv:false;
 }
 
 /**
 * IsSmae函数:检测参数的值是否相同
 * 返回值:相同返回true,不相同返回false
 */
 function IsSame($ArgvOne,$ArgvTwo,$Force=false){
  return $Force?$ArgvOne===$ArgvTwo:$ArgvOne==$ArgvTwo;
 }
       
 /**
 * IsQQ函数:检测参数的值是否符合QQ号码的格式
 * 返回值:是正确的QQ号码返回QQ号码,不是返回false
 */
 function IsQQ($Argv){
  $RegExp=/^[1-9][0-9]{5,11}$/;
  return preg_match($RegExp,$Argv)?$Argv:false;
 }
       
 /**
 * IsMobile函数:检测参数的值是否为正确的中国手机号码格式
 * 返回值:是正确的手机号码返回手机号码,不是返回false
 */
 function IsMobile($Argv){
  $RegExp=/^(?:13|15|18)[0-9]{9}$/;
  return preg_match($RegExp,$Argv)?$Argv:false;
 }
       
 /**
 * IsTel函数:检测参数的值是否为正取的中国电话号码格式包括区号
 * 返回值:是正确的电话号码返回电话号码,不是返回false
 */
 function IsTel($Argv){
  $RegExp=/[0-9]{3,4}-[0-9]{7,8}$/;
  return preg_match($RegExp,$Argv)?$Argv:false;
 }
       
 /**
 * IsNickname函数:检测参数的值是否为正确的昵称格式(Beta)
 * 返回值:是正确的昵称格式返回昵称格式,不是返回false
 */
 function IsNickname($Argv){
  $RegExp = '/^s*$|^c:\con\con$|[%,*"st<>&'()]|xA1xA1|xACxA3|^Guest|^xD3xCExBFxCD|xB9x43xABxC8/is'; //Copy From DZ
  return preg_match($RegExp,$Argv)?$Argv:false;
 }
       
 /**
 * IsChinese函数:检测参数是否为中文
 * 返回值:是返回参数,不是返回false
 */
 function IsChinese($Argv,$Encoding=utf8){
  $RegExp = $Encoding==utf8?/^[x{4e00}-x{9fa5}] $/u:/^([x80-xFF][x80-xFF]) $/;
  Return preg_match($RegExp,$Argv)?$Argv:False;
 }
}
?>
php 邮箱,网址,手机号码合法性正则 有需要的朋友可参考一下

1. 判断Email:

 代码如下 复制代码

<?php
function is_email($email){
return strlen($email) > 6 && preg_match("/^[w-.]+@[w-]+(.w+)+$/", $email);
}
?>

2. 判断Url:

 代码如下 复制代码

function is_url($str){
  return preg_match("/^http://[A-Za-z0-9]+.[A-Za-z0-9]+[/=?%-&_~`@[]':+!]*([^<>"])*$/", $str);
 }

3. 判断手机号码:

 代码如下 复制代码

function is_mobile($str){
  return preg_match("/^(((d{3}))|(d{3}-))?13d{9}$/", $str);
 }

php获取指定字符之间内容实现代码,这是一个获取字符串中两个子串之间的子串,如从字符串www.hzhuti.com中获取hzhuti子串,就让这个PHP函数来实现吧,

代码如下:

 代码如下 复制代码
function get_between($input, $start, $end) { 
 
  $substr = substr($input, strlen($start)+strpos($input, $start),
 
 (strlen($input) - strpos($input, $end))*(-1)); 
 
  return $substr; 
 

 
$string = "www.111cn.net"; 
 
$start = "www."; 
 
$end = ".com"; 
 
echo get_between($string, $start, $end);  // output:hzhuti

不过这个函数有个局限,就是$start子串和$end子串在整个串中只能出现一次。请看下面的例子:

 代码如下 复制代码
$string = "http://www.111cn.net/"; 
 
$start = "http://"; 
 
$end = "/";

很明显我想获取这个标准URL的域名部分,由于$end子串在整个串中不是唯一的,所以就会出现问题,请使用时务必注意!


NAS/NMS   COMPSITE   (NasdaqSC:^IXIC)   Quote   data   by   ReutersIndex   Value:2,030.08Trade   Time:5:16PM   ETChange:   35.40   (1.71%)Prev   Close:2,065.48Open:2,072.95Day 's   Range:2,026.20   -   2,073.4252wk   Range:1,359.32   -   2,153.831d

这样的一个字符串,我要截取Index   Value:和Trade   Time:之间的数据2,030.08,怎么截取?我要通用的方法

代码

 代码如下 复制代码

<?php
$str= "NAS/NMS   COMPSITE   (NasdaqSC:^IXIC)   Quote   data   by   ReutersIndex   Value:2,030.08Trade   Time:5:16PM   ETChange:   35.40   (1.71%)Prev   Close:2,065.48Open:2,072.95Day 's   Range:2,026.20   -   2,073.4252wk   Range:1,359.32   -   2,153.831d ";
preg_match( " 'Index   Value:(.+)Trade   Time 's ",$str,$arr);
if($arr){
      echo   $arr[ "1 "];
}
?>

本文章介绍了关于php分多步填写投票调查表单实现方法,大致为 把用户填写的内容获取之后保存在一个隐藏中,然后最后一步就一次提交给数据库。

1.php

 代码如下 复制代码
<form name=form1 id=form1 method=post action=2.php>
基本信息1:<input type=text name=base1 />
基本信息2:<input type=text name=base2 />
<input type=submit value="下一步">
</form>

2.php

 代码如下 复制代码
<form name=form2 id=form2 method=post action=3.php>
产品名称:<input type=text name=prcname />
产品价格:<input type=text name=price />
产品型号:<input type=text name=prcXH />
<input type=hidden name=base1 value="<?php echo $_REQUEST['base1'] ?>" />
<input type=hidden name=base2 value="<?php echo $_REQUEST['base2'] ?>" />
<input type=submit value=下一步 />
</form>

3.php

 代码如下 复制代码

<form name=form3 id=form3 method=post action=4.php>
其他信息1:<input type=text name=other1 />
其他信息2:<input type=text name=other2 />
<input type=hidden name=base1 value=<?php echo $_REQUEST['base1'] ?> />
<input type=hidden name=base2 value=<?php echo $_REQUEST['base2'] ?> />
<input type=hidden name=prcname value=<?php echo $_REQUEST['prcname'] ?> />
<input type=hidden name=price value=<?php echo $_REQUEST['price'] ?> />
<input type=hidden name=prcXH value=<?php echo $_REQUEST['prcXH'] ?> />
<input type=submit value=确定 />
</form>

4.php

 代码如下 复制代码

<?php
$base1=$_REQUEST['base1'];
$base2=$_REQUEST['base2'];
$prcname=$_REQUEST['prcname'];
$price=$_REQUEST['price'];
$prcXH=$_REQUEST['prcXH'];
$other1=$_REQUEST['other1'];
$other2=$_REQUEST['other2'];

$sql1="insert into [base_table](base1,base2) values('{$base1}','{$base2}')";
$sql2="insert into [prc_table](prcname,price,prcXH) values('{$prcname}','{$price}','{$prcXH}')";
$sql3="insert into [other_table](other1,other2) values('{$other1}','{$other2}')";
query($sql1);
query($sql2);
query($sql3);

echo "写入完成";
?>

总结

这种做的问题在于如果用户不小心关闭了页面数据将要重新再填写一次哦,不过这种方法很多大型网站都是这样做的,包括百度的百科里面的新手升级也是这样处理的。

[!--infotagslink--]

相关文章

  • 在java中获取List集合中最大的日期时间操作

    这篇文章主要介绍了在java中获取List集合中最大的日期时间操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
  • 教你怎么用Java获取国家法定节假日

    这篇文章主要介绍了教你怎么用Java获取国家法定节假日,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-23
  • mysql中获取一天、一周、一月时间数据的各种sql语句写法

    创建表:复制代码 代码如下:create table if not exists t( id int, addTime datetime default '0000-00-00 00:00:00′)添加两条初始数据:insert t values(1, '2012-07-12 21:00:00′);insert t values(2, '2012-07...2014-05-31
  • .NET/C# 使用Stopwatch测量运行时间

    这篇文章主要介绍了.NET/C# 使用Stopwatch测量运行时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • C# 10个常用特性汇总

    这篇文章主要介绍了C# 10个常用特性,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-09
  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
  • php计算两个日期相差天数的方法

    本文实例讲述了php计算两个日期相差天数的方法。...2015-03-15
  • PostgreSQL 字符串处理与日期处理操作

    这篇文章主要介绍了PostgreSQL 字符串处理与日期处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
  • vue开发之moment的介绍与使用

    moment是一款多语言支持的日期处理类库, 在vue中如何使用呢?这篇文章主要给大家介绍了关于vue之moment使用的相关资料,需要的朋友可以参考下...2021-05-13
  • 常用的日期时间正则表达式

    常用的日期时间正则表达式 下面收藏了大量的日期时间正则匹配函数,包括分钟,时间与秒都能达到。 正则表达式 (?n:^(?=d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(...2016-11-25
  • 非常全面的php日期时间运算汇总

    实例讲解之前,先来介绍几个核心函数: mktime 函数 mktime() 函数返回一个日期的 Unix 时间戳。 参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。 参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。...2015-11-08
  • C#中动态显示当前系统时间的实例方法

    想在网页中动态地显示当前系统的时间,找了好多,不过都是一些停在那里不动的。。。不过皇天不负有心人,终于让我找到了...2020-06-25
  • postgresql 中的时间处理小技巧(推荐)

    这篇文章主要介绍了postgresql 中的时间处理小技巧(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-29
  • 从chrome调试工具中把拖延时间的东西找出来

    我打开android开发手册的时候:http://www.csdn123.com/html/android/reference/packages.html 发现打开速度很慢,我用按了一下F12打开调试面板,切换到网络的选项卡network...2016-05-19
  • C#实现将字符串转换成日期格式的方法

    这篇文章主要介绍了C#实现将字符串转换成日期格式的方法,涉及C#操作时间及字符串的相关技巧,非常简单实用,需要的朋友可以参考下...2020-06-25
  • C# 当前系统时间获取及时间格式详解

    这篇文章主要介绍了C# 当前系统时间获取及时间格式详解的相关资料,这里提供代码实例,帮助大家学习参考,需要的朋友可以参考下...2020-06-25
  • 帝国CMS显示指定时间内更新的信息数量

    /*解决代码高亮太长不换行*/ .syntaxhighlighter{word-break:break-all;} uParse('#newstext', {rootPath: '/e/extend/ueditor/'}) 帝国CMS显示指定时间内更新的信息数...2016-11-01
  • C#使用TimeSpan时间计算的简单实现

    这篇文章主要给大家介绍了关于C#使用TimeSpan时间计算的相关资料,以及通过一个实例代码给大家介绍了C#使用timespan和timer完成一个简单的倒计时器的方法,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧...2020-06-25
  • JavaScript时间操作之年月日星期级联操作

    这篇文章主要介绍了JavaScript时间操作之级联日期选择操作,涉及到年、月、日、星期,感兴趣的小伙伴们可以参考一下...2016-01-18
  • php根据日期或时间戳获取星座信息和生肖等信息

    分享一个利用php根据日期或时间戳获取相应的干支纪年,生肖和星座信息的函数方法,具体函数代码以及使用方法如下: /** 判断干支、生肖和星座 */ function birthext($birth){ if(strstr($birth,'-')===false&&strlen($bi...2015-10-21