php高级教程

error_context:可选。规定一个数组,包含了当错误发生时在用的每个变量以及它们的值。

php高级教程

php格式化时间(php格式化json)php格式化时间(php格式化json)


php格式化时间(php格式化json)


php格式化时间(php格式化json)


导语:php是it行业语言,也是一门较热的网络技术,下面就由我为大家介绍一下php高级教程,欢迎大家阅读!

一、PHP- 数组:

$cars = array(

array("huawei","12","11"),

array("meizu","23","12"),

array("iphone","12","4")

);

$title = array("总共有:","个,已经卖出去了","个!");

for($i=0;$i{ for($j=0;$j { echo $cars[$i][$j]; echo $title[$j]; } echo " ";}?>

输出:

huawei总共有:存储 Session 变量12个,已经卖出去了11个!

meizu总共有:23个,已经卖出去了12个!

iphone总共有:12个,已经卖出去了4个!

二、PHP 日期和时间

下面列出了一些常用于日期的字符:

·Y - 表示年(四位数) y-表示年(后两位数)

其他字符,比如 "/","." 或 "-" 也可被 插入字符中,以增加其他格式。

echo"今天是 " . date("YYYY/m/d") ." "; //2017201720172017/06/26 由此可见不能用js中yyyy-mm-dd的形式

echo"今天是 " . date("Y.m.d") . " "; //2017.06.26

echo"今天是 " . date("Y-M-D") . " "; //17-Jun-Mon

echo"今天是 " . date("L") . " "; //0

?>

获得简单的时间

下面是常用于时间的字符:

date_default_timezone_set("Asia/Shanghai"); //设置时区

echo date_default_timezone_get(oid);//获取当前时区

·h - 带有首位零的 12 小时小时格式 H-24小时格式

·i - 带有首位零的分钟 I-0

·s - 带有首位零的秒(00 -59) S-返回th我也不知道是什么

·a - 小写的午前和午后(am 或 pm) A-返回大写格式:AM或PM

echo"现在是 " . date("h:i:sa") . " "; //现在是 02:15:44pm

echo"现在是 " . date("H:I:SA") . " "; //现在是 14:0:thPM

通过 PHP mktime() 创建日期

date() 函数中可选的时间戳参数规定时间戳。如果您未规定时间戳,将使用当前日期和时间

语法

mktime(hour,minute,second,month,day,year)

echo"创建日期是 " . date("Y-m-d h:i:sa", $d) ." "; //在date方法里面传参则取的是参数中的时间,如果不传的话则取的是当前时间

通过 PHP strtotime() 用字符串来创建日期

PHP strtotime() 函数用于把人类可读的字符串转换为Unix 时间。

$d=strtotime("10:38pm April 15 2015");

echo "创建日期是 " . date("Y-m-d h:i:sa", $d);

计算两个时间段内的时间所有的周六

$startdate = strtotime("Saturday");

$enddate = strtotime("+6 weeks",$startdate);

while ($startdate < $enddate) {

echo date("M d", $startdate)," ";

$startdate = strtotime("+1 week", $startdate); //在$startdate基础上加一个礼拜,你还可以加1天,1个月,1年

}?>

计算距离某一天还有多长时间

$d1=strtotime("2017-7-30");

$d2=ceil(($d1-time())/60/60/24);

echo "距离十二月三十一日还有:" . $d2 ." 天。";

?>

三、PHP Cookies

cookie 常用于识别用户。cookie 是留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

创建cookie

setcookie() 函数用于设置 cookie。

注释:setcookie() 函数必须位于

标签之前。

语法

setcookie(name, value, expire, path, domain);

在下面的例子中,我们将创建名为 "user" 的 cookie,把为它赋值 "Alex Porter"。我们也规定了此 cookie 在一小时后过期:

setcookie("user", "Alex Porter", time()+3600);

?>

注释:在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码(为防止 URL 编码,请使用setrawcookie() 取而代之)。

取回 Cookie 的值

PHP 的 $_COOKIE 变量用于取回cookie 的值。

// Print a cookie

echo $_COOKIE["user"];

// A way to view all cookies

print_r($_COOKIE);

?>

删除 cookie当删除 cookie 时,您应当使过期日期变更为过去的时间点。

// set the expiration date to one hour ago

setcookie("user", "", time()-3600);

?>

如果浏览器不支持 cookie 该怎么办?

如果您的应用程序涉及不支持cookie 的浏览器,就不得不采取其他方法在应用程序中从一张页面向另一张页面传递信息。一种方式是从表单传递数据(有关表单和用户输入的内容,稍早前我们已经在本教程中介绍过了)。

下面的表单在用户单击提交按钮时向"welcome.php" 提交了用户输入:

Name:

Age:

取回"welcome.php" 中的值,就像这样:

Welcome .

You are years old.

四、PHP Sessions

PHP Session 变量

当您运行一个应用程序时,您会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。

通过在上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要储存信息,可以把数据存储在数据库中。

Session 的工作机制是:为每个访问者创建一个的 id (UID),并基于这个 UID 来存储变量。UID 存储在cookie 中,亦或通过 URL 进行传导。

开始 PHP Session

在您把用户信息存储到 PHPsession 中之前,首先必须启动会话。

注释:session_start() 函数必须位于

标签之前:

上面的代码会向注册用户的会话,以便您可以开始保存用户信息,同时会为用户会话分配一个 UID。

存储和取回session 变量的正确方法是使用 PHP$_SESSION 变量:

// store session data

$_SESSION['views']=1;

?>

//retri session data

echo "Pageviews=". $_SESSION['views'];

?>

输出:

Pageviews=1

在下面的例子中,我们创建了一个简单的 page-view 计数器。isset() 函数检测是否已设置 "views" 变量。如果已设置 "views" 变量,我们累加计数器。如果 "views" 不存在,则我们创建 "views" 变量,并把它设置为 1:

if(isset($_SESSION['views']))

$_SESSION['views']=$_SESSION['views']+1;

else

$_SESSION['views']=1;

echo "Views=". $_SESSION['views'];

?>

终结 Session

如果您希望删除某些session 数据,可以使用 unset() 或 session_destroy() 函数。

unset() 函数用于释放指定的 session 变量:

unset($_SESSION['views']);

?>

您也可以通过session_destroy() 函数终结 session:

session_destroy();

?>

注释:session_destroy() 将重置 session,您将失去所有已存储的session 数据。

五、PHP 错误处理

·简单的 "die()" 语句

·自定义错误和错误触发器

为了避免用户获得类似上面的错误消息,我们在访问文件之前检测该文件是否存在:

if(!file_exists("welcome.txt"))

{die("File not found");

}else

{$file=fopen("welcome.txt","r");

}?>

如文件不存在,您会得到类似这样的错误消息:

File not found

比起之前的代码,上面的代码更有效,这是由于它采用了一个简单的错误处理机制在错误之后终止了脚本。

不过,简单地终止脚本并不总是恰当的方式。让我们研究一下用于处理错误的备选的 PHP 函数。

创建自定义错误处理器

创建一个自定义的错误处理器,可以在PHP 中发生错误时调用该函数。

该函数必须有能力处理至少两个参数(error ll 和 error message),但是可以接受多五个参数(可选的:file, line-number 以及error context):

语法

error_function(error_ll,error_message,

error_file,error_line,error_context)

参数描述

error_message:必需。为用户定义的错误规定错误消息。

error_file:可选。规定错误在其中发生的文件名。

error_line:可选。规定错误发生的行号。

创建错误处理函数

function customError($errno, $errstr)

{echo "Error: [$errno] $errstr

";

echo "Ending Script";

die();

}现在,我们已经创建了一个错误处理函数,我们需要确定在何时触发该函数。

Set ErrorHandler

PHP 的默认错误处理程序是内建的错误处理程序。我们打算把上面的函数改造为脚本运行期间的默认错误处理程序。

可以修改错误处理程序,使其仅应用到某些错误,这样脚本就可以不同的方式来处理不同的错误。不过,在本例中,我们打算针对所有错误来使用我们的自定义错误处理程序:

set_error_handler("customError");

由于我们希望我们的自定义函数来处理所有错误,set_error_handler() 仅需要一个参数,可以添加第二个参数来规定错误级别。

//定义错误处理函数

function customError($errno, $errstr)

{echo "rror: [$errno] $errstr";

}//设置错误处理函数

set_error_handler("customError");

//触发错误

echo($test);

?>

可能的错误类型:

·E_USER_ERROR - 致命的用户生成的run-time 错误。错误无法恢复。脚本执行被中断。

·E_USER_WARNING - 非致命的用户生成的run-time 。脚本执行不被中断。

·E_USER_NOTICE - 默认。用户生成的`run-time 通知。脚本发现了可能的错误,也有可能在脚本运行正常时发生。

例子

在本例中,如果"test" 变量大于 "1",则发生E_USER_WARNING 错误。如果发生了 E_USER_WARNING,我们将使用我们的自定义错误处理程序并结束脚本:

//error handler function

function customError($errno, $errstr)

{echo "Error: [$errno] $errstr

";

echo "Ending Script";

die();

}//set error handler

set_error_handler("customError",E_USER_WARNING);

//trigger error

$test=2;

if ($test>1)

{trigger_error("Value must be 1 or below",E_USER_WARNING);

}?>

错误记录

通过 E-Mail 发送错误消息

function customError($errno, $errstr)

{echo "Error: [$errno] $errstr ";

echo "Web has been notified";

error_log("Error: [$errno] $errstr",1,

"526369948@qq","From: 526369948@qq");

} 六、PHP 异常处理

异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。

当异常被触发时,通常会发生:

·当前代码状态被保存

·代码执行被切换到预定义的·m - 表示月(01-12) M-表示当前月的英文缩写异常处理器函数

·根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本

我们将展示不同的错误处理方法:

·异常的基本使用

·创建自定义的异常处理器

·多个异常

·重新抛出异常

·设置顶层异常处理器

Try, throw 和 catch

要避免上面例子出现的错误,我们需要创建适当的代码来处理异常。

正确的处理程序应当包括:

1.Try - 使用异常的函数应该位于"try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。

2.Throw - 这里规定如何触发异常。每一个 "throw" 必须对应至少一个 "catch"

3.Catch - "catch" 代码块会捕获异常,并创建一个包含异常信息的对象

//创建可抛出一个异常的函数

{if($number>1)

{throw new Exception("Value must be 1 or below");

}return true;

}//在 "try" 代码块中触发异常

try

{checkNum(2);//如果抛出异常则执行catch中的语句,这里就不接着往下执行了

//If the exception is thrown, this text will not be shown

echo 'If you see this, the number is 1 or below';

}//捕获异常

catch(Exception $e)

{echo 'Message: ' .$e->getMessage();

}?>

上面代码将获得类似这样一个错误:

Message: Value must be 1 or below

创建一个自定义的 Exception 类

创建自定义的异常处理程序非常简单。我们简单地创建了一个专门的类,当 PHP 中发生异常时,可调用其函数。该类必须是 exception 类的一个扩展。

这个自定义的exception 类继承了 PHP 的 exception 类的所有属性,您可向其添加自定义的函数。

我们开始创建exception 类:

class customException extends Exception //extends 相当于继承关键字

{public function errorMessage() //定义了自己的报错函数

{//error message 在继承的类中,可以访问基类的方法

.': '.$this->getMessage().' is not a valid E-Mail address';

}}

$email = "someone@example..";

try

{//check if

if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)

{//throw exception if email is not valid

throw new customException($email);

}}

catch (customException $e)

{//display custom message

echo $e->errorMessage();

}?>

这个新的类是旧的exception 类的副本,外加 errorMessage() 函数。正因为它是旧类的副本,因此它从旧类继承了属性和方法,我们可以使用 exception 类的方法,比如 getLine() 、getFile() 以及 getMessage()。

多个异常

可以为一段脚本使用多个异常,来检测多种情况。

可以使用多个if..else 代码块,或一个 switch 代码块,或者嵌套多个异常。这些异常能够使用不同的 exception 类,并返回不同的错误消息:

php如何输出date日期

utcTime.setDate(tmpTime.getDate());

你是怎么读取的数据库的信息啊,

echo "当前系统日期为:".date('Y-m-d');

echo date();

echo time()

ec$is_date=strtotime($data)?strtotime($data):false;ho date("Y",time())

php 日期提交后怎么判断这个日期格式是否正确

var_dump(date('y-m-d

$data='2014-11-11';//这里可以任意格式,因为strtotime函数很强大

@param string utcTime utc时间字符串 格式 :'Y-m-d H:i:s'

if($is_date===false){

exit('日期格式非法');

}else{

echo date('Y-m-d',$is_date);//只要提交的是合法的日期,这里都统一成2在php中date是格式化时间戳的,你这转化时间格式怎么能行014-11-11格式

}

用t提交啊,比get安全点

可以用base64 相关函数处理下啦

thinkphp中date="Y-m-d",###的问题,望高手指点。

date() 函数的格式参数是必需的,它们规定如何格式化日期或时间。

如果你数据库中的格式是统一的2013-09-05 13:53:53这样子,建议使用字符串截取的方法

{$np.t_time|substr=###,5,5}

$np.当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25t_time|date="Y年m月d日",###}

这个是date->whereTime('create_time', 'last week')日期的用法。

你需要先转成时间戳才能在用Y-m-d strtotime()就是转成时间戳

php如何将分别输入的年月日小时转化为%y-%m-%d %h:%i:%s 这种格式

所以输出当前日期直接写 echo date('Y-m-d');就可以了.

用date方法即可,date('Y-m-d H:i:s', time());

function checkNum($number)

如让我们触发一个异常:果需要将输入的时间按照这个显示的话,直接用字符串拼接就好了,或者将日期转换成时间戳,然后再用date格式化即可。

php如何获取当前是几号

错误处理方法:

在php中可以通过“PHP Date()”函数获取当前是几号,该函数的语法是“date(format,timestamp)”,其中当“format”参数是“d”时,则表示获取月份中的第几天。

session_start();

:《PHP视频教程》

·d - 表示月里的某天(01-31) D-表示当前这天的英文星期简写

获取当前时间,需要用到 PHP Date() 函数。

PHP Date() 把时间戳格式化为更易读的日期和时间。

语法:

date(format,timestamp)其中参数 format 为显示格式,参数 timestamp 为时间戳,是可选择的,默认为 time() ,即如果没有给出时间戳则使用本地当前时间。

format 格式参数在这里简单介绍几个:

一些常用于日期的字符:

Y - 完整表示年份(四位数字:2019)

y - 表示年份(两位数字:19)

F - 表示月份(完整的文本格式: January 或者 March)

M - 表示月份(3个字母:Jun)

m - 表示月份,有前导0(数字:04)

n - 表示月份,无前导0(数字:4)

d - 表示月份中的第几天,有前导0(01-31)

j - 表示月份中的第几天,无前导0(1-31)

D - 表示星期几(3字母:Wed)

l - 表示星期几(完整英文:Wednesday)

w - 表示星期中的第几天(数字,0表示星期天)

W - 表示一年中的第几周

z - 表示一年中的第几天(0-366)

实例:

echo "

今天是:" . date("Y/m/d") . "

";

echo "

今天是:" . date("Y.m.d") . "

";

echo "

今天是:" . date("Y-m-d") . "

";

echo "

今天是:" . date("l") . "

";

PHP获取当前时间、年份、月份、日期和天数 PHP笔记 第2张

如果想要中文的年月日,可以这样写:

echo "现在时间是:" . date("Y年m月d日");

运行结果:

php如何获取当前日期

var locTime = new Date(); //local时间对象

1、前提条件

date_default_timezone_set("UTC");Yii设置:

php网站编程中,我们一般用date函数来获取上的时间。但要想正确调用date函数,必须保证php的配置文件php.ini已经配置正确了,否则调用date函数时会报错,没办确进行获取时间。

2、用记事本程序打开php配置文件php.ini,查找“date.timezone = ”项,如果该前有“;”,则去掉前面的“;”,并且将该项的值修改为:date.timezone = PRC 或者 date.timezone = "Asia/Shanghai"。保存配置后,需重新启动,修改的配置方才能够生效。

3、获取日期

配置文件修改好后,我们就可以调用date函来获取当前时间了,相关代码如下所示:

>在浏览器中查看运行效果,可以看到显示时间成功!

4、对获取日期的显示格式进行格式化调整。

如以下代码,可显示出更符合我们人习惯的日期// 时间区间查询格式:

echo "当前系统日期为:".date('Y').'年'.date('m').'月'.date('d').'日';

>教程:PHP视频教程

怎样在thinkphp 查询语句中将时间戳格式转化为年月日格式,然后再作为where条件查询

二,获取英文文本日期时间 示例如下:

使用where方法

$errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile()

where方法支持时间比较,例如:

自己定义一个函数;貌似你这种方法简便;还可以通过正则把里面的数字都提出来;

// 大于某个时间

where('create_time','> time','2016-1-1');

// 小于某个时间

where('create_time','<= time','2016-1-1');

where('create_time','between time',['2015-1-1','2016-1-1']);

第三个参数可以传入任何有效的时间表达式,会自动识别你的时间字段类型,支持的时间类型包括timestamps、datetime、date和int。

使用whereTime方法

whereTime方法提供了日期和时间字段的快捷查询,示例如下:

// 大于某个时间

->whereTime('birthday', '>=', '1970-10-1')

// 小于某个时间

->whereTime('birthday', '<', '2000-10-1')

->whereTime('birthday', 'between', ['1970-10-1', '2000-10-1'])

// 不在某个时间区间

->whereTime('birthday', 'not between', ['1970-10-1', '2000-10-1'])

时间表达式

还提供了更方便的时间表达式查询,例如:

// 获取今天的博客

->whereTime('create_time', 'today')

// 获取昨天的博客

->whereTime('create_time', 'yesterday')

// 获取本周的博客

->whereTime('create_time', 'week')

// 获取上周的博客

// 获取本月的博客

->whereTime('create_time', 'month')

// 获取上月的博客

->whereTime('create_time', 'last month')

// 获取今年的博客

->whereTime('create_time', 'year')

// 获取去年的博客

->whereTime('create_time', 'last year')

如果查询当天、本周、本月和今年的时间,还可以简化为:

// 获取今天的博客

->whereTime('create_time', 'd')

// 获取本周的博客

->whereTime('create_time', 'w')

// 获取本月的博客

->whereTime('create_time', 'm')

// 获取今年的博客

->whereTime('create_time', 'y')

V5.0.5+版本开始,还可以使用下面的方式进行时间查询

->whereTime('create_time','-2 hours')

这些在开发手册中都可以找到的。希望可以帮到你。

thinkphp格式化时间戳 {$time|date='Y-m-d',###}

在PHP里$d=strtotime("tomorrow");为什么输出的是2015-03-06 12:00:00am?

也可以在php代码中设置

读了一遍感觉回答已经回答的很清楚,但是看到作者又问,才明白问的是为何显示12:00:00am

如果数据库里的date存储的是unix时间戳的话你需要用date()转换一下,用sql取出来显示就行。

首先 date()函数中参数: h - 12 小时制,带前导零(01 到 12)

H - 24 小时制,带前导零(00 到 23)

所以: var year = tmpTime.getUTCFullYear();date("Y-m-d h:i:s", $d) 会显示为12小时制中的上午 12:00:00 也就是子夜!

php如何设置utc时区

可以在php.ini中[Date]一节, 将

php设置utc时区的方法:1、通过“date_default_timezone_set("UTC");”方法将程序内部时区设置为UTC时间;2、使用“localToUtc”方法将本地时间转为UTC时间。

:《PHP视频教程》

PHP跨时区(UTC时间)设置的方法

本文介绍下,在php中跨时区设置的方法,将程序内部时区设置为UTC时间.(UTC 也可以叫 GMT) 数据库中存储UTC时间等,供大家做个参考。

PHP跨时区(UTC时间)设置

1,将程序内部时区设置为UTC时间.(UTC 也可以叫 GMT)

PHP设置:

代码示例:

例如:

代码示例:

//输出当前UTC时间

date("Y-m-d H:i:s");2,数据库中存储UTC时间.

可以用PHP控制,也可以通过设置数据库时区来实现.

2,服务端发送到前端的时间均为UTC时间格式, 由JS将其转换为本地时间后进行显示。

JS内部数据与显示数据分离。

JS转换函数:

代码示例:

将UTC时间转为本地时间

@return string 本地时间字符串 格式 :'Y-m-d H:i:s'

/

function utcToLocal(utcTime) {

if(utcTime==='0000-00-00 00:00:00' || utcTime===null || utcTime==='' || utcTime===undefined)

return utcTime;

utcTime=utcTime.replace("-", "/").replace("-", "/"); //火狐不兼容'-'分隔日期

//解析字符串及本地时间赋值

locTime.setTime(Date.parse(utcTime)-locTime.getTimezoneOffset()60000);

//本地时间字符串格式化

var year = locTime.getFullYear();

var month = preZero(?phplocTime.getMonth()+1);

var date = preZero(locTime.getDate());

var hour = preZero(locTime.getHours());

var minute = preZero(locTime.getMinutes());

var second = preZero(locTime.getSeconds());

return year+'-'+month+'-'+date+' '+hour+':'+minute+':'+second;

}/如果输入了它不能识别的字符串则保存为 1970-01-01 12:00:00am

将本地时间转为UTC时间

@param string locTime utc时间字符串 格式 :'Y-m-d H:i:s'

@return string 本地时间字符串 格式 :'Y-m-d H:i:s'

/

function localToUtc(locTime) {

if(locTime==='0000-00-00 00:00:00' || locTime==='0000-00-00' || locTime===null || locTime==='' || locTime===undefined)

return locTime;

var tmpTime = new Date();

var utcTime = new Date();

locTime=locTime.replace("-", "/").replace("-", "/"); //火狐不兼容'-'分隔日期

//解析字符串

tmpTime.setTime(Date.parse(locTime));

if(locTime.length>10) {

var month = preZero(tmpTime.getUTCMonth()+1);

var date = preZero(tmpTime.getUTCDate());

var hour = preZero(tmpTime.getUTCHours());

var minute = preZero(tmpTime.getUTCMinutes());

var second = preZero(tmpTime.getUTCSeconds());

return year+'-'+month+'-'+date +' '+hour+':'+minute+':'+second;

} else {

utcTime.setFullYear(tmpTime.getFullYear());

utcTime.setMonth(tmpTime.getMonth());utcTime.setMonth(tmpTime.getMonth());//?若不重复,则赋值无效

var year = utcTime.getUTCFullYear();

var month = preZero(utcTime.getUTCMonth()+1);

var date = preZero(utcTime.getUTCDate());

return year+'-'+month+'-'+date;

}}

//单个数字添加前导0

function preZero(str) {

return str.toString().length<2 ? '0'+str : str;

}

php获取当前时间

return $errorMsg;

解决办法:php.ini中找到date.timezone,将它的值改成 Asia/Shanghai,即 date.timezone = Asia/Shangha

time() 就是获取当前时间了·错误报告,出来是时间戳

格式转换:date('Y-m-d H:i:s',time()); 转出来的就是如2015-12-11 09:14:12

你的时区设置有问题。两种解决方db('blog')案:

1.在php.ini中找到date.timezone,将它的值改成 Asia/Shanghai,即 date.timezone = Asia/Shanghai

2.在程序开始时添加 date_default_timezone_set('Asia/Shanghai'),这样手动设置为本地时区