php学习笔记之日期时间函数

 更新时间:2016年11月25日 15:47  
本文章来给各位朋友详细介绍关于在php学日期时间函数的一些用法与参数介绍,php支持的时间函数有很多,例如:getdate()、mktime()、gmdate()等等,下面我来给大家介绍有兴趣
本文章来给各位朋友详细介绍关于在php学日期时间函数的一些用法与参数介绍,php支持的时间函数有很多,例如:getdate()、mktime()、gmdate()等等,下面我来给大家介绍有兴趣的朋友可以在网上搜索相关资料。

获取日期时间也是网站设计中经常用到的。php提供了date()时间函数来实现这一功能,结构形式如下:

实例:

 代码如下 复制代码

<?php             
 echo date("F j, Y, g:i a"). "&nbsp&nbsp&nbsp&nbsp&nbsp"; 
 echo date("m.d.y"). "&nbsp&nbsp&nbsp&nbsp&nbsp";  
 echo  date("j, n, Y"). "&nbsp&nbsp&nbsp&nbsp&nbsp";  
 echo  date("Ymd"). "&nbsp&nbsp&nbsp&nbsp&nbsp";    
 echo  date('h-i-s, j-m-y, it is w Day z '). "&nbsp&nbsp&nbsp&nbsp&nbsp";
 
 echo  date('it is the jS day.'). "&nbsp&nbsp&nbsp&nbsp&nbsp";
 
 echo  date("D M j G:i:s T Y"). "&nbsp&nbsp&nbsp&nbsp&nbsp"; 
 echo  date('H:m:s m is month'). "&nbsp&nbsp&nbsp&nbsp&nbsp"; 
 
 echo  date("H:i:s"). "&nbsp&nbsp&nbsp&nbsp&nbsp";   
 echo date('l dS of F Y h:i:s A');       
 echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));   
?>

format参数及其含义
参数 含义 备注
a 上午或下午 am或pm
A 上午或下午 AM或PM
B 互联网时间 000~999
d 月份中的第几天 01~31
D 替换成星期几的英文简称 Mon~Sun
F 用英文表示月份 January~December
g 小时 1~12
G 小时 0~23
h 小时 01~12
H 小时 00~23
i 分钟 00~59
I 是否为夏令时 是为1,否为0
j 月份中的第几天 1~31
l 星期几 Sunday~Saturday
L 是否为闰年 闰年为1,不是闰年为0
m 用数字表示月份,按两位输出 01~12
M 月份缩写的英文单词 Jan~Dec
n 月份按阿拉伯数字格式输出 1~12
s 秒数 00~59
S 每月天数英文后缀 1st~2nd
t 指定月份的天数 28~31
T 本机设置的时区 如EST
w 一周的第几天(从0~6) 0~6
Y 替换成4位年号 如2011
y 替换成2位的年号 如11
z 一年中第几天 0~366
Z 以秒表示的时区偏差 -43200~43200

getdate()定义和用法

getdate() 函数取得日期/时间信息。

语法
getdate(timestamp)参数 描述
timestamp 可选。规定 Unix 时间格式中的时间。

说明
返回一个根据 timestamp 得出的包含有日期信息的结合数组。如果没有给出时间戳,则认为是当前本地时间。

数组中的单元如下:

 代码如下 复制代码

<?php
print_r(getdate());
?>输出:

Array
(
[seconds] => 45
[minutes] => 52
[hours] => 14
[mday] => 24
[wday] => 2
[mon] => 1
[year] => 2006
[yday] => 23
[weekday] => Tuesday
[month] => January
[0] => 1138110765
)

键名 说明 返回值例子
"seconds" 秒的数字表示 0 到 59
"minutes" 分钟的数字表示 0 到 59
"hours" 小时的数字表示 0 到 23
"mday" 月份中第几天的数字表示 1 到 31
"wday" 星期中第几天的数字表示 0(表示星期天)到 6(表示星期六)
"mon" 月份的数字表示 1 到 12
"year" 4 位数字表示的完整年份 例如:1999 或 2003
"yday" 一年中第几天的数字表示 0 到 365
"weekday" 星期几的完整文本表示 Sunday 到 Saturday
"month" 月份的完整文本表示 January 到 December
0 自从 Unix 纪元开始至今的秒数,和 time() 的返回值以及用于 date() 的值类似。 系统相关,典型值为从 -2147483648 到 2147483647。

mktime() 定义和用法

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

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

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

语法
mktime(hour,minute,second,month,day,year,is_dst)

例子
mktime() 函数对于日期运算和验证非常有用。它可以自动校正越界的输入:

 代码如下 复制代码
<?php
echo(date("M-d-Y",mktime(0,0,0,12,36,2001)));
echo(date("M-d-Y",mktime(0,0,0,14,1,2001)));
echo(date("M-d-Y",mktime(0,0,0,1,1,2001)));
echo(date("M-d-Y",mktime(0,0,0,1,1,99)));
?>

输出:

Jan-05-2002
Feb-01-2002
Jan-01-2001
Jan-01-1999

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

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

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

本程序仅供php+mysql爱好者学习测试用,测试过程中,可能会出现错误,请朋友们根据错误提示修改本程序,本程序为安装版,先运行install目录,然后根据提示操作!


关于PHP语法的那些就不说了,我就说一下连接mysql吧!

 代码如下 复制代码
$conn [email protected]_connect("localhost","root","mydown") or die("数据库链接错误");
mysql_select_db("bbs", $conn);
mysql_query("set names 'GBK'");

第一句就是描述了连接数据库的语句,并且如果失败的提示”数据库连接错误“;前面的三个参数分别代表了 数据库地址localhost,数据库用户名root,连接数据库密码mydown;

第二句就是描述了连接到数据库表bbs,后面的$conn代表哪个数据库。

第三句话就是转换编码格式,显示中文。

连接好了数据库之后,我们来看下 数据库语句怎么在PHP中提交运行!

 代码如下 复制代码
    $sql="INSERT INTO message (id,user,title,content,lastdate) values ('','$_POST[user]','$_POST[title]','$_POST[content]',now())";
mysql_query($sql);

上面中的蓝色字体大家应该面熟,意思就是 在数据库中插入信息。第二句是在数据库中运行该语句。想起中类似$_POST[title]的变量,大家应该知道,这是通过网页提交获取的信息


实例

install安装

 代码如下 复制代码

<html>
<head>
<title>留言板安装</title>
</head>
<body>
<form action="check_install.php" method="POST">
<table>
<tr><td align="right"><font color="Red">*</font> 输入数据库服务器地址:</td><td><input name="llcc_server" type="text" value="localhost"></td></tr>
<tr><td align="right"><font color="Red">*</font> 输入数据库服务器用户名:</td><td><input name="llcc_user_name" type="text" value=""></td></tr>
<tr><td align="right"><font color="Red">*</font> 输入数据库服务器密码:</td><td><input name="llcc_user_pass" type="text" value=""></td></tr>
<tr><td align="right"><font color="Red">*</font> 输入数据库名称:</td><td><input name="llcc_data_name" type="text" value=""> </td></tr>
<tr><td><input type="submit" name="bt_install" value="提交"></td></tr>
</table>
</form>
</body>
</html>

check_install.php

 代码如下 复制代码

<?php
//获取提交的数据库值
$llcc_server=$_POST['llcc_server'];
$llcc_user_name=$_POST['llcc_user_name'];
$llcc_user_pass=$_POST['llcc_user_pass'];
$llcc_data_name=$_POST['llcc_data_name'];
//打开数据库配置文件
$fp=fopen("../config.php",'w');

if (!$fp) {
    echo "sorry,try again!";
}
//写入文件内容
$outconfig="<?phpn";
$outconfig.='$server=';
$outconfig.="".$llcc_server.";//数据库所在IP,如果是本地,默认localhostn";
$outconfig.='$server_name=';
$outconfig.="".$llcc_user_name.";//连接数据库用户名,一般为rootn";
$outconfig.='$server_pass=';
$outconfig.="".$llcc_user_pass.";//连接数据库密码。n";
$outconfig.='$server_data=';
$outconfig.="".$llcc_data_name.";//数据库名n";
$outconfig.="?>";
$fw=fwrite($fp,$outconfig);

if ($fw) {
    echo "<br><br><br><center>安装完成!请手动删除目录下install文件夹<br><a href='../'>返回首页</a></center>";
}


?>

login.php

 代码如下 复制代码

<?php
include("header.php");
include("conn.php");

  if($_GET[out]){
   setcookie("cookie", "out");
    echo "<script language="javascript">location.href='login.php';</script>";
  }


  if($_POST[id]=='admin'){
    $pw=md5($_POST[pw]);
    if($pw=='1b3ae77a2e06580c8cb57e112ddc4a26'){
     setcookie("cookie", "ok");
       echo "<script language="javascript">location.href='login.php';</script>";
    }
  }
if($_COOKIE['cookie']!='ok'){
?>

<SCRIPT language=javascript>
function Checklogin()
{
 if (myform.id.value=="")
 {
  alert("请填写登录名");
  myform.id.focus();
  return false;
 }
  if (myform.pw.value=="")
 {
  alert("密码不能为空");
  myform.pw.focus();
  return false;
 }
}
</SCRIPT>
<table width="400">
<form action="" method="post" name="myform" onsubmit="return Checklogin();">
  <tr><th>登录名:</th><td><input type="text" name="id" /></td></tr>
  <tr><th>密码:</th><td><input type="password" name="pw" /></td></tr>
  <tr><td colspan="2"><input type="submit" name="submit" value="登陆"/></td></tr>
  </form>
  </table>
<?
}else{
?>
 <a href='?out=login'>退出</a><form name="ff">
 <input type="submit" name="sub" value="清空数据库"></form>
 <?php
 if($_GET[sub]=="清空数据库")
 {
 $sql="delete from message";
 $query=mysql_query($sql);
 }
 ?>
<?php
}
?>

conn.php数据库连接

 代码如下 复制代码
<?php
include("config.php");
$conn [email protected]_connect($server,$server_name,$server_pass) or die("数据库链接错误");
mysql_select_db($server_data, $conn);//此处代表的要打开的数据库名称,"bbs"是我的数据库名,修改成自己的!
mysql_query("set names 'GBK'"); //使用GBK中文编码;
?>

index.php文件

 代码如下 复制代码

<?php
include("conn.php");
include("header.php");
?>
自由屋留言板<hr width="70%"><table width=750 border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#add3ef">
<?php
$sql="select * from message order by id DESC";
$query=mysql_query($sql);
while($row=mysql_fetch_array($query)){
?>
  <tr bgcolor="#eff3ff">
  <td><b><?php echo $row[id];?>用户名:</b><?php echo $row[user];?>&nbsp;&nbsp;&nbsp;&nbsp;<b>标题:</b><?php echo $row[title];?>&nbsp;&nbsp;&nbsp;<b>发表时间:</b><?php echo $row[lastdate];?></td>
  </tr>
  <tr bgColor="#ffffff">
  <td><b>内容:<?php echo $row[content];?></b></td>
  </tr>
 <?php
  }
?>
</table>

add.php增加留方程序

 代码如下 复制代码

<?php
include("header.php");
include("conn.php");
if($_POST["submit"])
{
$sql="INSERT INTO message (id,user,title,content,lastdate) values ('','$_POST[user]','$_POST[title]','$_POST[content]',now())";
mysql_query($sql);
echo "留言已提交";
};
?><center>

<table border="0" width="450">
<form name="add" method="post" onsubmit="return CheckPost();">
<tr><th>用户:</th><td><input type="text" name="user" size="10"></td></tr>
<tr><th>标题:</th><td><input type="text" name="title" size="30"></td></tr>
<tr><th>内容:</th><td><textarea name="content"></textarea></td></tr>
<tr><td colspan="2" align="center"><input type="submit" name="submit" value="发表留言"> &nbsp;&nbsp;&nbsp;<input type="reset" value="重设"></td></tr>
</form>
</table>
</center>

<SCRIPT language=javascript>
function CheckPost()
{
 if (add.user.value=="")
 {
  alert("请填写用户名");
  add.user.focus();
  return false;
 }
 if (add.title.value.length<5)
 {
  alert("标题不能少于5个字符");
  add.title.focus();
  return false;
 }
 if (add.content.value=="")
 {
  alert("必须要填写留言内容");
  add.content.focus();
  return false;
 }
}
</SCRIPT>

test.php数据库结构

 代码如下 复制代码

<?php
include("config.php");
include("conn.php");
$sql="CREATE TABLE `message` (
  `id` tinyint(1) NOT NULL auto_increment,
  `user` varchar(25) NOT NULL,
  `title` varchar(50) NOT NULL,
  `content` tinytext NOT NULL,
  `lastdate` date NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=1 ;";
$query=mysql_query($sql);
if($query){
echo"执行成功";}
else echo"执行失败!";
?>

小编来给大家介绍在php中删除指定数组元素与删除空数组的实例代码与方法,有需要了解的朋友可进入参考参考。。

php删除数组指定元素可以通过以下两种方法实现:

1、遍历数组,然后判断元素的值是否指定值,如果是则用unset()删除。示例代码如下:

 代码如下 复制代码

//$var是要删除的元素值,$array是目标数组;
function array_del($var,$array){
 $i=0;
 foreach($array as $val){
  if($var==$val){
   unset($array[$i]);
   break;
  }
  $i++;
 }
 return $array;
}

2、使用array_flip()函数,该函数的作用是将键名和值反转。示例代码如下:

 代码如下 复制代码

<?php
$a=array('php','css','java','html','jquery');
$a=array_flip($a);  //将键名和值反转
unset($a['html']);  //删除指定值元素
$a=array_flip($a);  //将数组再次反转,还原数组的键名和值
var_dump($a);
?>

删除数组中的空元素

实例:

 代码如下 复制代码

<?php
    $array = ('a' => "abc", 'b' => "bcd",'c' =>"cde",'d' =>"def",'e'=>"");
    array_filter($array);
    echo "<pre>";
    print_r($array);
?>

结果:

Array (

     [a] => abc

     [b] => bcd

     [c] => cde

    [d] => def

   )

去除数组中的空元素以及重复元素

 代码如下 复制代码

<?php

$array = array('2',19,33,88,2,4,5,5,99,99,'',33,'');
function delArrayRepeat($arr){
 if(is_array($arr)){
  $arr = array_unique($arr);
  foreach($arr as $k=>$v){
   if($v==''){
    unset($arr[$k]);
   }
  }
  $result = $arr;
 }else{
  $result = "参数必需是数组!";
 }
 return $result;
}
$res = delArrayRepeat($array);
print_r($res);

?>

在php中如果要实现下载如图片文件,php文件,html文件这些文件我们如果在网站上点击都是直接打开了,如果要实现下载我们可以利用php header函数来操作,下面我来介绍利用php header函数实现文件下载的实例,有需要的朋友可参考。

例1

 代码如下 复制代码

function download($file_url,$new_name=''){
 if(!isset($file_url) || trim($file_url)==''){
  return '500';
 }
 if(!file_exists($file_url)) { //检查文件是否存在
  return '404';
 }
 $file_name=basename($file_url);
 $file_type=explode('.',$file_url);
 $file_type=$file_type[count($file_type)-1];
 $file_name=trim($new_name=='')?$file_name:urlencode($new_name).'.'.$file_type;
 $file_type=fopen($file_url,'r'); //打开文件
 //输入文件标签
 header("Content-type: application/octet-stream");
 header("Accept-Ranges: bytes");
 header("Accept-Length: ".filesize($file_url));
 header("Content-Disposition: attachment; filename=".$file_name);
 //输出文件内容
 echo fread($file_type,filesize($file_url));
 fclose($file_type);
}

例2

以下php代码可以解决:
 

 代码如下 复制代码
<?
if( empty($_GET['FileName'])|| empty($_GET['FileDir'])|| empty($_GET['FileId'])){
    echo'<script> alert("非法连接 !"); location.replace ("index.php") </script>'; exit();
}
$file_name=$_GET['FileName'];
$file_dir=$_GET['FileDir'];
$FileId=$_GET['FileId'];
$file_dir = $file_dir."/";
if   (!file_exists($file_dir.$file_name))   {   //检查文件是否存在 
  echo   "文件找不到"; 
  exit;   
  }   else   { 
$file = fopen($file_dir . $file_name,"r"); // 打开文件
// 输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $file_name));
Header("Content-Disposition: attachment; filename=" . $file_name);
// 输出文件内容
echo fread($file,filesize($file_dir . $file_name));
fclose($file);
exit();
}
?>

直接下载文件

 代码如下 复制代码
<?php  
$file = get_file_address();// 文件的真实地址(支持url,不过不建议用url)  
 
if (file_exists($file)) {  
    header('Content-Description: File Transfer');  
    header('Content-Type: application/octet-stream');  
    header('Content-Disposition: attachment; filename='.basename($file));  
    header('Content-Transfer-Encoding: binary');  
    header('Expires: 0');  
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');  
    header('Pragma: public');  
    header('Content-Length: ' . filesize($file));  
    ob_clean();  
    flush();  
    readfile($file);  
    exit;  
}  
?>

小提示,header函数不只是可以实现文件下载,他还有很多的功能哦,如发送404,301等等状态信息都是可以的哦。

注意:在使用header之前我们必须在header之前没有任何输出,否则就会报错。

我们使用phpmyadmin的朋友可能会碰到导入2048kb .sql文件了,大了就会提示No data was received to import. Either no file name was submitted、or the file size exceeded the maximum size permitted by your PHP 下在, 我来给大家介绍解决办法。

解决方法:

如果你有服务器管理权限,那自然是更好了,我们直接在php.ini下分别对 upload_max_filesize , memory_limit 和 post_max_size进入设置了。

如我的配置

upload_max_filesize = 1200M

memory_limit = 2048M

post_max_size = 1200M

然后重启apache或iis就可以了

如果你没有服务器管理权限,我们还有一个解决办法


phpMyAdmin-3.1.0-all-languages为例,我的安装目录E:/wwwroot/phpMyAdmin/

1.在 phpmyadmin目录里新建一个目录 upload.

2.打开phpmyadmin,找到E:/wwwroot/phpMyAdmin/config.sample.inc.php文件,找到并修改为 $cfg['UploadDir'] = “upload”; 然后点保存.
再打开E:/wwwroot/phpMyAdmin/libraries/config.default.php文件,找到并修改为 $cfg['UploadDir'] = “upload”; 然后点保存.

3.用 FTP 上传 需要导入的sql 文件到 phpmyadmin/upload/ 下

4.访问 phpmyadmin,点击 Import(导入) ,就会出现选择服务器上的文件的下拉框,选择刚才用FTP上传的SQL文件。至此完美解决。

日期时间学习笔记函数