显示本月,上月,今天,今年以及各时间起点与终点的做法

 更新时间:2016年11月25日 17:32  点击:1755

显示本月,上月,今天,今年以及各时间起点与终点的做法

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

参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。

参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。

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

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


上面我们简单的讲了一下mktime与date函数,下面我们就来看看利用他们实例今天,上月,下月等日期计算

 

$t = time();
$t1 = mktime(0,0,0,date(“m”,$t),date(“d”,$t),date(“Y”,$t));
$t2 = mktime(0,0,0,date(“m”,$t),1,date(“Y”,$t));
$t3 = mktime(0,0,0,date(“m”,$t)-1,1,date(“Y”,$t));
$t4 = mktime(0,0,0,1,1,date(“Y”,$t));
$e1 = mktime(23,59,59,date(“m”,$t),date(“d”,$t),date(“Y”,$t));
$e2 = mktime(23,59,59,date(“m”,$t),date(“t”),date(“Y”,$t));
$e3 = mktime(23,59,59,date(“m”,$t)-1,date(“t”,$t3),date(“Y”,$t));
$e4 = mktime(23,59,59,12,31,date(“Y”,$t));

参考一下关于mktime()函数

参数 描述
hour 可选。规定小时。
minute 可选。规定分钟。
second 可选。规定秒。
month 可选。规定用数字表示的月。
day 可选。规定天。
year 可选。规定年。在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个限制了。
is_dst

可选。如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1。

自 5.1.0 起,is_dst 参数被废弃。因此应该使用新的时区处理特性。

 

//测试
echo date(“当前 Y-m-d H:i:s”,$t).” $t<br>”;
echo date(“今天起点 Y-m-d H:i:s”,$t1).” $t1<br>”;
echo date(“今月起点 Y-m-d H:i:s”,$t2).” $t2<br>”;
echo date(“上月起点 Y-m-d H:i:s”,$t3).” $t3<br>”;
echo date(“今年起点 Y-m-d H:i:s”,$t4).” $t4<br>”;
//测试
echo date(“今天终点 Y-m-d H:i:s”,$e1).” $e1<br>”;
echo date(“今月终点 Y-m-d H:i:s”,$e2).” $e2<br>”;
echo date(“上月终点 Y-m-d H:i:s”,$e3).” $e3<br>”;
echo date(“今年终点 Y-m-d H:i:s”,$e4).” $e4<br>”;
结果:
当前 2011-05-24 15:42:55 1306222975
今天起点 2011-05-24 00:00:00 1306166400
今月起点 2011-05-01 00:00:00 1304179200
上月起点 2011-04-01 00:00:00 1301587200
今年起点 2011-01-01 00:00:00 1293811200
今天终点 2011-05-24 23:59:59 1306252799
今月终点 2011-05-31 23:59:59 1306857599
上月终点 2011-04-30 23:59:59 1304179199
今年终点 2011-12-31 23:59:59 1325347199

看一下date函数

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

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

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

PHP $_SERVER详细用法分析

Argument           Result

PHP_SELF           Returns the path and filename of the current script
SERVER_PROTOCOL    Returns the name and revision of the page-requested protocol
REQUEST_METHOD     Returns the request method used to access the page
REQUEST_TIME       Returns the timestamp from the beginning of the request
DOCUMENT_ROOT      Returns the root directory of the current script
HTTP_REFERER       Returns the page address that referred to the current page
HTTP_USER_AGENT    Returns the user agent of the header from the current request
REMOTE_ADDR        Returns the IP address of the current user
REMOTE_PORT        Returns the port of the user's machine that is accessing the page
SCRIPT_FILENAME    Returns the absolute filename from the current script
SCRIPT_NAME        Returns the path of the current script

<?php教程 if ($_SERVER['REQUEST_METHOD'] == 'GET') { ?>
<form action="<?php echo $_SERVER['SCRIPT_NAME'] ?>" method="post">
What is your first name?
<input type="text" name="first_name" />
<input type="submit" value="Say Hello" />
</form>
<?php } else {
    echo 'Hello, ' . $_POST['first_name'] . '!';
}
?>

获取用户的IP地址

<?php

$address = $_SERVER['REMOTE_ADDR'];
$referer = $_SERVER['HTTP_REFERER'];
$browser = $_SERVER['HTTP_USER_AGENT'];

$file = fopen("log.html",  "a"); 

$time = date("H:i dS F");
fwrite( $file, "<b>Time:</b> $time<br>" );

if( $address != null)
{
  fwrite( $file, "<b>IP Address:</b> $address <br>");

if( $referer != null)
{
  fwrite( $file, "<b>Referer:</b> $referer<br>"); 
}

fwrite( $file, "<b>Browser:</b> $browser<br/><hr>"); 

fclose($file);

?>

脚本显示方法

<?php
$lastmod = filemtime($_SERVER['SCRIPT_FILENAME']);

echo 'file was updated on ' . date('l d F Y, at H:i:s T', $lastmod);
?>

 

获取服务器时间

<?php
 
  $lastmod = filemtime($_SERVER['SCRIPT_FILENAME']);

  echo 'This file was last updated on '
        . date('l d F Y, at H:i:s T', $lastmod)
        . '.';
?>
 

全局变量和“global”关键字

PHP默认定义了一些“超级全局(Superglobals)”变量,这些变量自动全局化,而且能够在

程序的任何地方中调用,比如$_GET和$ _REQUEST等等。它们通常都来自数据或者其他外部数

据,使用这些变量通常是不会产生问题的,因为他们基本上是不可写的。
但是你可以使用你自己的全局变量。使用关键字“global”你就可以把全局数据导入到一个

函数的局部范围内。如果你不明白“变量使用范围”,请你自己参考PHP手册上的相关说明。
下面是一个使用“global”关键字的演示例子:

<?php教程
$my_var = 'Hello World';
test_global();
function test_global() {
    // Now in local scope
     // the $my_var variable doesn't exist
     // Produces error: "Undefined variable: my_var"
    echo $my_var;
    // Now let's important the variable
    global $my_var;
    // Works:
    echo $my_var;
}
?>

正如你在上面的例子中看到的一样,“global”关键字是用来导入全局变量的。看起来它工

作的很好,而且很简单,那么为什么我们还要担心使用“global”关键字来定义全局数据呢

我来给处入行的人讲解一下全局变量global的使用,”全局变量“,这个名词中的全局两个

字已经告诉我们这个变量在各个地方都能用,先看一个实例:

<?php
$a = 1;
$b = 2;

function Sum()
{
    global $a, $b; //在里面声明为全局变量

    $b = $a + $b;
}

Sum();
echo $b;
?>

结果: 3

如果没有全局变量global在方法内是不能获得$a,$b值的,所以在方法里面想用外面的变量就

需要先声明这个变量为全局变量,这样就可以使用了,很方便吧。

 

<?PHP
      $w3sky = 1;
      $w3sky2 = 2;

function Sum()
       {
       global $w3sky, $w3sky2;$w3sky2 = $w3sky + $w3sky2;
       }Sum();
       echo $w3sky2;
       ?>

以上脚本的输出将是“3”。在函数中申明了全局变量 $w3sky 和 $w3sky2,任何变量的所有

引用变量都会指向到全局变量。对于一个函数能够申明的全局变量的最大个数,PHP 没有限

制。

在全局范围内访问变量的第二个办法,是用特殊的 PHP 自定义 $GLOBALS 数组。前面的例子

可以写成:

例子 使用 $GLOBALS 替代 global

<?PHP
       $w3sky = 1;
       $w3sky2 = 2;function Sum()
       {
       $GLOBALS['w3sky'] = $GLOBALS['w3sky'] + $GLOBALS['w3sky2'];
       }Sum();
       echo $w3sky2;
       ?>

在 $GLOBALS 数组中,每一个变量为一个元素,键名对应变量名,值对应变量的内

容。$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量。以下范例显

示了超全局变量的用处:

例子 演示超全局变量和作用域的例子

<?PHP
       function test_global()
       {
       // 大多数的预定义变量并不 "super",它们需要用 'global' 关键字来使它们在函

数的本地区域中有效。
       global $HTTP_POST_VARS;echo $HTTP_POST_VARS['name'];// Superglobals 在任何

范围内都有效,它们并不需要 'global' 声明。Superglobals 是在 PHP 4.1.0 引入的。
       echo $_POST['name'];
       }
       ?>global 也就是说在一个文件里 只要你声明为global $db 那么在声明的下面 你就

可以引用这个$db了


<?php
function SayMyABCs2()
{
     global $count;
     while($count<10)
        {
           print(chr(ord('A')+$count));
           $count=$count+1;
        }
     print("<br>Now I know $count letters<br>");
}
$count=0;
SayMyABCs2();
$count=$count+1;
print("Now I've made $count function call(s).<br>");
SayMyABCs2();
$count=$count+1;
print("Now I've made $count function call(s).<br>");
?>
output:
ABCDEFGHIJ         //第一次循环依次打印10个大写字母
Now I know 10 letters
Now I've made 11 function call(s).       //第二次由于条件大于10则不执行循环

Now I know 11 letters
Now I've made 12 function call(s).

由于global对变量的声明,现在只有一个$count变量,它在函数内和函数外都被增值了,当

第二次调用SayMyABCs2()时,$count已经是11了,因此根本不会进入打印字母的循环。在函

数内定义的变量的作用域默认情况下是局限于该函数的,使用global声明,就可以通知PHP,

现在需要让一个变量名和它在函数外环境中有同样的含义。声明格式:global

$count1,$count2,...,$countn;
global在另一方面又很有用,尤其是因为PHP提供了一些变量,可在其代码执行之前绑到每个

页面上,它能够让函数看到这些变量,而省去了每次在调用中把它们作为参数传入函数这一

麻烦

正则表达式的写法规则:"/规则需要写在2个斜杠中间/"。

(. :小数点)用于匹配除换行符之外的所有字符。
(s:反斜杠小写s)用于匹配单个空格符,包括tab键和换行符;
(S:反斜杠大写S)用于匹配除单个空格符之外的所有字符;
(d:反斜杠d)用于匹配从0到9的数字;也可以这样写:[0-9]
(w:反斜杠小写w)用于匹配字母,数字或下划线字符;
(W:反斜杠大写W)用于匹配所有与w不匹配的字符;
元字符包括: +, *,?

元字符理解起来容易混淆,所以我在后面做了代码结果截图


复制代码 代码如下:
“+”元字符规定其前导字符必须连续出现一次或多次

= 比如/es+/
与“tesseessssseast12354haeasashaha”字符串相匹配,首先要与第一个字母e匹配,然后匹配s,s必须出现一次或多次,请看实例截图。

“*”元字符规定其前导字符必须出现零次或连续多次

= 比如/es*/
与“tesseessssseast12354haeasashaha”字符串相匹配,首先与第一个字母e匹配,后面的s出现零次或者连续出现,看实例。

“?”元字符规定其前导对象必须连续出现零次或一次

= 比如/es?/
与“tesseessssseast12354haeasashaha”字符串相匹配,首先与第一个字母e匹配,后面的s出现零次或者最多出现一次(就是最后一个字母s不重复出现)。

示例代码:
复制代码 代码如下:
$str = "tesseessssseast12354haeasashaha";
echo "=====".$str."
";
echo "/es+/:".preg_replace("/es+/","--",$str)."
";
echo "/es*/:".preg_replace("/es*/","--",$str)."
";
echo "/es?/:".preg_replace("/es?/","--",$str)."
";
?>

 

执行结果截图:

 

另外如果觉得元字符“+*?”比较难理解可以用这种{ }方法代替:

比如es*我们可以写成es{0,},而es+我们可以写成es{1,},es?可以写成es{0,1},注意:当不确定次数的时候就不用写(也不用空格)。

当然我们要指定出现多少次的可以写成这样:es{3}表示s出现3次

举一反三:

比如要替换连续多个空格为一个空格,我可以这样写:preg_replace("/s+/"," ",$str);
比如要找出字符串中的数字(整数):preg_replace("/d+/", "()", $str); 是表示符合规则的字符串值

比如要找出字符串中的带小数点的数字:preg_replace("/d+.d+/", "()", $str); //这里的“.”表示输出小数点

找出由字母组成的字符串:preg_replace("/[a-zA-Z]+/", "()", $str)

找出由(字母、数字混合)组成的字符串:preg_replace("/([a-zA-Z]|d)+/", "()", $str)


正则表达式中“或”运算,使用 “ | ”

例如上面的例子:找出由(字母或数字)混合组成的字符串([a-zA-Z]|d) 也可以这样写([a-zA-Z]|[0-9])

“^”出现在 “[ ]”内时就被视做否定运算符;[^0-9]表示除了数字之外的任何字符。

而当“^”位于“[ ]”之外,或没有“[ ]”时,则应当被视做定位符。

定位符的意思就是比如:“^The”:开头一定要有”The”字符串;类似的:“en$”:$符号表示必须是en结尾。

php教程用户注册过滤中文用户名,在很多开发中,用户名是不允许中文名字的,所以我们今天做个实例,限制中文名注册,在php中我们可以利用正则表达式来限制中文名如preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/"了,下面看实例。

<?php
header("Content-type:text/html;charset=gb2312");
require_once('inc/connect.php');
$xm=isset($_GET['txt'])?$_GET['txt']:'null';
$ta=isset($_GET['tag'])?$_GET['tag']:3;

if( $ta==1 ){
 if(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $xm)){
   echo("<div id='error'>对不起,不能使用中文作为用户名! </div>");
   exit();
  }
 if($xm=='null' || $xm=='' || strlen($xm)>10 || strlen($xm)<3){
  echo("<div id='error'>对不起,用户由3-12Aa_zZ及数字组成! </div>");
  exit();
 }else{
  $result=mysql教程_query("select m_uid from wk_member where m_uid='$xm' ") or die('Error !'.mysql_error());
  if(!mysql_num_rows($result)){
   echo("<div id='success'><font color=red>&nbsp;&nbsp;&nbsp;&nbsp;恭喜你!此用户可以注册!</font> </div>");
  }else{
   echo("<div id='error'>对不起,用户己被注册请选择其它名称!</div>");
  }
 }

}elseif( $ta==0){
 if(@file_get_contents($xm)){
  echo '<div id="success">&nbsp;&nbsp;&nbsp;&nbsp;博客地址可以访问</div>';
 }else{
  echo '<div id="error">对不起,你输入的博客地址不能正常访问<div >';
 }
}else{
 echo "<div id='error'>对不起,无效的操作!</div>";
}
?>

总结:
方法很简单,只要获取用户输入的资料再利用preg_match判断一下就可以了。

[!--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
  • jQuery实现广告显示和隐藏动画

    这篇文章主要为大家详细介绍了jQuery实现广告显示和隐藏动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-07-05
  • 基于JavaScript实现表单密码的隐藏和显示出来

    为了网站的安全性,很多朋友都把密码设的比较复杂,但是如何密码不能明显示,不知道输的是对是错,为了安全起见可以把密码显示的,那么基于js代码如何实现的呢?下面通过本文给大家介绍JavaScript实现表单密码的隐藏和显示,需要的朋友参考下...2016-03-03
  • 常用的日期时间正则表达式

    常用的日期时间正则表达式 下面收藏了大量的日期时间正则匹配函数,包括分钟,时间与秒都能达到。 正则表达式 (?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# 当前系统时间获取及时间格式详解的相关资料,这里提供代码实例,帮助大家学习参考,需要的朋友可以参考下...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
  • C#获取文件创建时间的方法

    这篇文章主要介绍了C#获取文件创建时间的方法,涉及C#文件操作的技巧及CreattionTime属性的使用方法,需要的朋友可以参考下...2020-06-25
  • PowerShell中使用Get-Date获取日期时间并格式化输出的例子

    这篇文章主要介绍了PowerShell中使用Get-Date获取日期时间并格式化输出的例子,本文讲解了直接调用Get-Date、在Write-Host中使用Get-Date、格式化输出的方法,需要的朋友可以参考下...2020-06-30
  • php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法

    php获取今日开始时间戳和结束时间戳$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;//php获取昨日起始时间戳和结束时间...2013-10-04
  • JavaScript时间操作之年月日星期级联操作

    这篇文章主要介绍了JavaScript时间操作之级联日期选择操作,涉及到年、月、日、星期,感兴趣的小伙伴们可以参考一下...2016-01-18
  • Mybatis和Mybatis-Plus时间范围查询方式

    这篇文章主要介绍了Mybatis和Mybatis-Plus时间范围查询方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-08-06
  • 在页面中输出当前客户端时间javascript实例代码

    这篇文章主要介绍了在页面中输出当前客户端时间javascript实例代码的相关资料,需要的朋友可以参考下...2016-03-03