PHP中的日期处理

PHP中的日期处理
PHP中的日期处理

PHP中的日期处理

本文包含以下内容:

1、得到目前的日期和时间-我们有多少种方式?

2、改变日期显示的方式-日期和时间的显示形式

3、转换现在的日期为Unix的时间戳值

4、改变日期

a. 增加时间

b. 减去时间

c. 找出两日期之间的间隔

5、为PHP添加DateAdd函数

6、为PHP添加DateDiff函数

**得到目前的日期和时间

在Unix中,时间的表示方式为计算从1970年1月1日零时起所过去的秒数,这称为UNIX 时间戳(Unix Epoch)。

如果我们有这样一段的代码:

?

echo time();

?

将返回值958905820

而此时的时间为2000年5月21日12时43分。

你也许会说这相当不错。当这对我毫无帮助,或者只有一点帮助。在PHP 中,对日期处理的函数都必须用到由time()返回的时间戳值。同时,由于PHP 在Unix和Windows系统中均使用同样的时间戳值,这就允许你不需要修改代码即可在不同的系统间移植。另外的一个好处是time()函数返回的是一个整数,你可以将其作为整数字段或文本字段存入数据库,而不必使用特别的日期/时间字段。

你已经基本了解了Unix的时间戳值,现在让我们来展示它的实际用途。

改变日期显示的方式-日期和时间的显示形式

PHP提供两个办法来将Unix的时间戳值转换成为有用的数据。第一个是date()函数。这个函数有两个参数-第一个字符串用于设定你所希望返回的格式,第二个为Unix的时间戳值。

格式化字符串通过一些简单的特殊格式化字符来显示你所希望看到的格式的日期和时间。假设你希望日期以这样的格式显示“18h01 Sunday 21 May”。我们需要对字符串中的每一部分使用一个特殊格式化字符,你可以从PHP 手册中日期和时间函数库中找到。这样的特殊格式化字符数量不少,他们所表示的类似于星期几、月的英文名、用2位或4位数表示的年份,是否是上午(AM)或下午(PM)以及其他。对于这个例子我们需要的特殊字符为:‘H’-24 小时制的小时

‘i’-分钟

‘l’-星期几的英文全名

‘d’-本月的第几日

‘F’-月份的英文全名

因此我们的格式化字符串为”Hhi l d F”,PHP代码为:

?

echo date ("Hhi l d F" ,time());

?

当我们执行这段代码,我们发现我们所得到的结果为:

180609 Sunday 21 May

这样的结果看起来有些奇怪。让我们再查一下PHP手册,原来’h’所代表的是12 小时制的小时数。这再次证明了一句真理:“计算机只做你所告诉它该做的,而不是你想要它做的”。我们有两个选择。第一个是在h前使用转义字符“”:

echo date ("Hhi l d F", time());

我们得到这样的结果:

18h12 Sunday 21 May

这正是我们所要的。但如果我们在一个十分复杂的句子中需要包含日期和时间,我们是否需要对每个字符使用转义字符?

答案当然是不。我们使用另一个函数strftime()。

strftime()有两个好处。第一个好处我们并不在本文讨论范围内-如果你使用setlocale()函数,你可以通过strftime得到相应语言的月份的名称。另外的一个好处是你可以将特别的日期和时间的格式化字符包含在你的字符串中。这同时也意味着无论你是否要学习date()函数的所有特殊格式化字符,你都必须学习一整套完全不同的格式化字符。

strftime()工作的方式和date()没有什么不同,除了特殊格式化字符的前面必须添加一个百分号%。如果用strftime()函数,前面例子的代码如下:

?

echo strftime ("%Hh%M %A %d %b" ,time());

?

结果为:

18h24 Sunday 21 May

这也许看起来将简化繁,但考虑一下如果你所需要的显示的为"Today is Sunday 21 May 2000. The time is somewhere close to 18h24." 我想使用date()函数无疑令人感到厌烦。

在开始的时候,我提及我们有两种方式可以从Unix时间戳值中得到有用的数据。我们刚刚了解了date()和strftime()。另一个getdate()。这个函数只需要Unix 的时间戳值作为参数,而函数的返回值为日期和时间的数组。

下面是一个例子:

?

$date_time_array = getdate (time());

echo $date_time_array[ "weekday"];

?

返回的结果为:

Sunday

除了"weekday",该数组的其他部分为:

"seconds" –秒

"minutes" –分

"hours" –小时

“mday" - 本月的第几天

"wday" -本周的第几天(数字)

"mon" -月(数字)

"year" –年

"yday" - r本年的第几天(数字)

"month" -月份全名

我们现在可以得到容易辨认的日期和时间。那么其他呢?

**转换现在的日期为Unix的时间戳值

通常你必须处理一些日期或时间格式的数据。打开M$的一个Access数据库,所有的日期都以YYYY/MM/DD的格式存储,加入目前的日前即为2000/05/27。Mktime()函数可以将一个时间转换成Unix的时间戳值。

函数的格式为:int mktime(int hour, int minute, int second, int month, int day, int year, int [is_dst] );

从左往右你必须提供小时、分、秒、月、天和年。最后一个参数用于指定你是否处于夏令时,此参数是可选的,所以我们将忽略它。

代码如下:

?

echo mktime (0, 0,0 ,5, 27,2000 );

?

由于不知道小时、分和秒同时这些参数必须填写,我将其设置为0。设置为0意味着时间为午夜。

?

$access_date = "2000/05/27";

//explode()函数用一个字符串作为分界来分解另一个字符串。这个例子$access_date通过字符串”/”来分解

$date_elements = explode("/" ,$access_date);

// 此时

// $date_elements[0] = 2000

// $date_elements[1] = 5

// $date_elements[2] = 27

echo mktime (0, 0,0 ,$date_elements [1], $date_elements[ 2],$date_elements [0]); ?

我们看一个比从Access数据库单纯获得日期更复杂的情况,我们得到一个以下格式的日期和时间:2000/05/27 02:40:21 PM

?

// 来自Access的字符串

$date_time_string = "2000/05/27 02:40:21 PM";

// 将字符串分解成3部分-日期、时间和上午/下午

$dt_elements = explode(" " ,$date_time_string);

// 分解日期

$date_elements = explode("/" ,$dt_elements[ 0]);

// 分解时间

$time_elements = explode(":" ,$dt_elements[ 1]);

// 如果是下午,我们将时间增加12小时以便得到24小时制的时间

if ($dt_elements [2]== "PM") { $time_elements[ 0]+=12;}

// 输出结果

echo mktime ($time_elements [0], $time_elements[ 1], $time_elements[ 2], $date_elements[1], $date_elements[2], $date_elements[0]);

?

**修改日期

有时我们需要知道6小时以后是什么时间,35天前的日期或者从你最后一次玩Quake3后已过去多少秒。我们已经知道如何用mktime()函数从单独的日期和时间中获得Unix的时间戳值。如果我们需要的并非目前日期和时间的Unix时间戳值,我们该咋办?下面是一些练习可以帮助说明我们后面所要做的。

正如前面所见,mktime()使用以下参数:小时、分、秒、月、天和年。想想第二节,getdate()函数可以为我们获得这些参数。

?

// 将目前的时间戳值放入一数组内

$timestamp = time();

echo $timestamp;

echo "p";

$date_time_array = getdate( $timestamp);

// 用mktime()函数重新产生Unix时间戳值

$timestamp = mktime($date_time_array ["hours"], $date_time_array["minutes" ],$date_time_array[ "seconds"],$date_time_array ["mon"], $date_time_array["mday" ],$date_time_array[ "year"]);

echo $timestamp;

?

看起来有一些令人感到迷惑。我将用一些变量来使上面的程序看起来更容易了解。

?

// 将目前的时间戳值放入一数组内

$timestamp = time();

echo $timestamp;

echo "p";

$date_time_array = getdate( $timestamp);

$hours = $date_time_array[ "hours"];

$minutes = $date_time_array["minutes"];

$seconds = $date_time_array[ "seconds"];

$month = $date_time_array["mon"];

$day = $date_time_array["mday"];

$year = $date_time_array["year"];

// 用mktime()函数重新产生Unix时间戳值

$timestamp = mktime($hours ,$minutes, $seconds,$month ,$day,$year);

echo $timestamp;

?

现在我们将由getdate()所产生的时间戳值放入相对应的名称变量中,所以代码变得相对容易阅读和理解。现在如果我们需要在目前的时间上加上19个小时,我们用$hours+19代替mktime()函数中的$hours。mktime()将自动为我们将时间转到第二天。

?

// 将目前的时间戳值放入一数组内

$timestamp = time();

echo strftime( "%Hh%M %A %d %b",$timestamp);

echo "p";

$date_time_array = getdate($timestamp);

$hours = $date_time_array["hours"];

$minutes = $date_time_array["minutes"];

$seconds = $date_time_array["seconds"];

$month = $date_time_array["mon"];

$day = $date_time_array["mday"];

$year = $date_time_array["year"];

// 用mktime()函数重新产生Unix时间戳值

// 增加19小时

$timestamp = mktime($hours + 19, $minutes,$seconds ,$month, $day,$year); echo strftime( "%Hh%M %A %d %b",$timestamp);

echo "br~E after adding 19 hours";

?

运行后得到:

14h58 Saturday 03 Jun

09h58 Sunday 04 Jun

~E after adding 19 hours

减少时间也是同样的-你只需要减少相应变量的值即可。

得到两个不同时间值的差同样也是非常简单。你所需要做的只是将两个时间值转换为Unix的时间戳值,然后两者相减即可。两者之差即为两个时间所相隔的秒数。另外一些算法可以很快地将秒转为天、小时、分和秒。

**为PHP添加DateAdd函数

正如在文章一开始我所说的-写本文的原因是因为我在PHP中找不到类似ASP的DateDiff函数。在介绍完PHP是如何处理日期和时间,让我们将ASP 中常用的两个函数移植到PHP。第一个函数是DateAdd。

根据Vbscript的文档,DateAdd(interval,number,date)函数的定义为“返回已添加指定时间间隔的日期。”

Inetrval为表示要添加的时间间隔字符串表达式,例如分或天;number为表示要添加的时间间隔的个数的数值表达式;Date表示日期。

Interval(时间间隔字符串表达式)可以是以下任意值:

yyyy year年

q Quarter季度

m Month月

y Day of year一年的数

d Day天

w Weekday一周的天数

ww Week of year周

h Hour小时

n Minute分

s Second秒

w、y和d的作用是完全一样的,即在目前的日期上加一天,q加3个月,ww加7天。

?

function DateAdd ($interval, $number, $date) {

$date_time_array = getdate($date);

$hours = $date_time_array["hours"];

$minutes = $date_time_array["minutes"];

$seconds = $date_time_array["seconds"];

$month = $date_time_array["mon"];

$day = $date_time_array["mday"];

$year = $date_time_array["year"];

switch ($interval) {

case "yyyy": $year +=$number; break;

case "q": $month +=($number*3); break;

case "m": $month +=$number; break;

case "y":

case "d":

case "w": $day+=$number; break;

case "ww": $day+=($number*7); break;

case "h": $hours+=$number; break;

case "n": $minutes+=$number; break;

case "s": $seconds+=$number; break;

}

$timestamp = mktime($hours ,$minutes, $seconds,$month ,$day, $year);

return $timestamp;}

?

我们可以将上面的代码保存为dateadd.inc文件,然后运行以下代码:

?

include('dateadd.inc');

$temptime = time();

echo strftime( "%Hh%M %A %d %b",$temptime);

$temptime = DateAdd("n" ,50,$temptime);

echo "p";

echo strftime( "%Hh%M %A %d %b",$temptime);

?

我们将得到:

15h41 Saturday 03 Jun

16h31 Saturday 03 Jun

为PHP添加DateDiff函数

现在DateAdd已经完成,那么DateDiff呢?

根据文档,DateDiff(interval,date1,date2)函数的定义为“返回两个日期之间的时间间隔”。

Intervals参数的用法与DateAdd函数中的相同。出于避免过于复杂的考虑,我们决定忽略Vbscript中DateDiff函数中其它复杂的参数,即其两个可选的参数变量[firstdayofweek[, firstweekofyear]](它们用于决定星期中第一天是星期天还是星期一和一年中第一周的常数。而且我们只允许intervals有以下五个值:"w"(周)、"d"(天)、"h"(小时)、"n"(分钟)和"s"(秒)。

Let's see what we can come up with: 下面的代码是我们所需要的:

?

Function DateDiff ($interval, $date1,$date2) {

// 得到两日期之间间隔的秒数

$timedifference = $date2 - $date1;

switch ($interval) {

case "w": $retval = bcdiv($timedifference ,604800); break;

case "d": $retval = bcdiv( $timedifference,86400); break;

case "h": $retval = bcdiv ($timedifference,3600); break;

case "n": $retval = bcdiv( $timedifference,60); break;

case "s": $retval = $timedifference; break;

}

return $retval;}

?

将上面的代码存为datediff.inc文件,然后运行下面的代码:

?

include('datediff.inc');

include('dateadd.inc');

$currenttime = time();

echo "Current time: ". strftime("%Hh%M %A %d %b" ,$currenttime)."br"; $newtime = DateAdd ("n",50 ,$currenttime);

echo "Time plus 50 minutes: ". strftime("%Hh%M %A %d %b" ,$newtime)."br"; $temptime = DateDiff ("n",$currenttime ,$newtime);

echo "Interval between two times: ".$temptime;

?

如果一切顺利,你可以看到以下结果:

Current time: 16h23 Saturday 03 Jun

Time plus 50 minutes: 17h13 Saturday 03 Jun

Interval between two times: 50

如果你在Unix机器上运行PHP,你必须编译PHP支持BC高精度函数。你必须从以下地址https://www.360docs.net/doc/dd10352991.html,/extra/number4.tar.gz下载BC库,然后将其解压到PHP4的根目录下,重新编译PHP,编译时要加上--enable-bcmath 的选项。(详细说明见PHP4中README.BCMATH)。PHP4的Windows版本则不需要做任何修补即可直接使用BC高精度函数。

现在你已经得到处理日期和时间的函数,剩下的就是如何将其运用到你的PHP程序中。

php中文日期 setlocale和strftime区域化 时间差 倒计时 问题

setlocale: 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) 把地区信息设置为系统默认。 例子 在本例中,我们将把locale 设置为US English,然后再设置回系统默认: strftime: strftime —根据区域设置格式化本地时间/日期 string strftime( string$format [, int$timestamp ] ) 返回用给定的格式字串对给出的timestamp进行格式输出后的字符串。如果没有给出时间戳则用当前的本地时间。月份和星期几以及其它和语言有关的字符串写法和用setlocale()设定的当前的区域有关。 格式字串能识别下列转换标记: %a - 当前区域星期几的简写 %A - 当前区域星期几的全称 %b - 当前区域月份的简写 %B - 当前区域月份的全称 %c - 当前区域首选的日期时间表达 %C - 世纪值(年份除以100 后取整,范围从00 到99) %d - 月份中的第几天,十进制数字(范围从01 到31) %D - 和%m/%d/%y 一样 %e - 月份中的第几天,十进制数字,一位的数字前会加上一个空格(范围从' 1' 到'31')%g - 和 %G 一样,但是没有世纪

PHP代码编写规范

QC 质量管理体系文件 代码编写规范 受控状态:■受控□非受控 发布日期:2006年02月20日 实施日期:2006年02月24日

1. 引言 1.1. 目的 制定本规范是为了能达到以下目的: ●提高程序员工作效率和代码的利用性 ●程序员可以了解任何代码,弄清程序的状况 ●新人可以很快的适应环境 ●防止新接触php的人出于节省时间的需要,自创一套风格并养成终生的习惯 ●防止新接触php的人一次次的犯同样的错误 ●在一致的环境下,人们可以减少犯错的机会 1.2. 适用范围 适用于本公司的所有开发人员,包括数据库、网页及应用程序开发人员,及有关的程序测试人员。 1.3. 引用标准 GB/T 8566-1995 信息技术软件生存期过程 GB/T 8567-1988 计算机软件产品开发文件编写指南 1.4. 术语 GB/T 11457-1995中所使用的术语适用于本规范。

2. 代码编写规则 2.1. 注释 (1)编写代码期间注释要求占程序总量15%以上。 (2)每个模块顶部必须说明模块名称、功能描述、作者等。 (3)每个过程、函数、方法等开头部分必须说明功能、参数、返回值、原数据和目标数据数据结构等等。 (4)变量定义的行末应当对变量给出注释。 (5)程序在实现关键算法的地方应当给出注释 2.2. 变量、函数、过程、控件等命名规则 (1)变量命名采用[作用范围][数据类型][自定义名称]规则定义,要求看到变量名就能直观的看出其范围和数据类型。 (2)函数、过程、方法、事件等命名应尽量做到观其名知其义。 (3)控件的命名采用[控件类型][自定义名]规则定义,要求通过名字能直观看出控件类型。 (4)自定义命名空间规则,要求能顾名思义 2.3. 源代码规则 风格约定:采用缩进的格式保存程序的层次结构。要求能直观的看出循环、判断等层次结构。

php中for循环制作年历

制作年历 2.1实训说明 2.1.1 实验背景 日历是一种记载日期等相关信息的出版物,通常每页显示一日信息的叫日历,每页显示一个月信息的叫月历,每页显示全年信息的叫年历。从日历的诞生至今,它有多种的呈现形式,如挂历、台历、年历卡、电子日历、万年历等。 2.1.2 功能描述 在生活中,日历对于人们的旅程规划、行程安排和工作计划等有着重要的作用。下面将使用现阶段学习过的知识来实现年历的制作。具体需求如下所示: ●根据用户输入的年份输出对应的年历 ●用户可输入年份的取值范围是1582~9999 ●判断31天的月份(1月、3月、5月、7月、8月、10月、12月) ●判断30天的月份(4月、6月、9月、11月) ●实现闰年2月29天,平年2月28天的功能 ●将日期按照对应的星期输出展示 ●按照3行4列的方式展示给定年份的年历 ●确定年历中每月的星期输出顺序为“日、一、二、三、四、五、六” 接下来对本阶段案例的实现思路进行系统的分析,将一个复杂的案例分解成多个阶段,逐一进行实现,具体如下图所示。 年历实现思路图 从上图可以清晰的看到,实现年历的制作流程共分为6个阶段,第1阶段和第2阶段的判断是为了确定第3阶段2月份的天数,闰年2月份29天,平年28天。接着在第4阶段将每月的1日设置为周天,使用0表示,周一到周六分别使用1~6表示,循环输出年历。然后利用蔡勒公式计算用户给定年份的1月1日对应的星期。最后对每月1号不是周日的月份日期,在输出前进行空白填充。

2.1.3 必备技术 (一)网页技术(HTML+CSS) 1.HTML网页构建的基本设计; 2.HTML网页样式的基本设计; (二)PHP开发语言 1.变量 2.运算符 3.if语句 4.for语句 2.1.4 学时分配 实训课程学时安排可参考下表。 2.1.5 实训目标 1.熟练掌握if、for、逻辑运算符的使用。 2.掌握编程实现网页年历的生成。 2.2准备开发环境 本项目支持如下软件版本的运行环境: ●Apache 2.2~2.4 ●PHP 5.3~7.1 ●支持WampServer、XAMPP等集成环境

PHP中的Date()函数详细讲解

PHP中的Date()函数详细讲解 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表示今天是本年中第几天 4,其他 echo date('T');UTC大写T表示服务器的时间区域设置

PHP,Mysql日期和时间整理

PHP,Mysql日期和时间整理 工作一年,收获了很多,慢慢做些总结,提升工作效率, 工作中mysql使用的时间是一个UNIX时间戳:从1970年1月1日0点开始到当前时间的秒数,由于是int类型,很方便的适用于计算机处理,不仅仅是php和mysql的数据交互的一种格式,在各种客户端,也是数据交互的标准(android/IOS)等,因此如果只是保存和显示日期的时候,应该使用UNIX时间戳来计算日期和做为标准的日期格式。 工作中常用的流程是:将HTML页面的时间转化为时间戳保存到mysql中,从mysql中取出时间戳格式化展示在web或手机客户端。总之mysql中保存的时间是UNIX时间戳,然后被PHP格式化为合适的时间 介绍几个常用的函数 1.date(), 2.mktime(), 3.getdate(), 4.strftime() 1.date() PHP中获取时间和日期 使用date()函数:将时间戳或当前时间转化成格式化的字符串,例如: echo date('Y-i-s');//输出2014-3-25 2.mktime() 使用mktime()将时间转化成UNIX时间戳 $timestamp = mktime(); 获取当前时间戳有三种方法: mktime(),time(),date('U') mktime做时间运算 mktime(12,0,0,$mon,$day+10,$year);十天以后的时间戳 3.getdate()函数: $today = getdate(); print_r($today); //输出 Array ( [seconds] => 38 [minutes] => 38 [hours] => 22 [mday] => 25 [wday] => 2 [mon] => 3 [year] => 2014 [yday] => 83 [weekday] => Tuesday

DEDECMS显示英文日期时间的方法

DEDECMS显示英文日期时间的方法 下面就说一下在dedecms如果把日期变成英文的. 时间格式:SaturdayNovember-24200707:49:45 要显示成这样的日期格式 1.在列表页里,代码如下: 复制代码代码如 下:[field:pubdatefunction=strftime('%A %B-%d %Y%H:% M:%S',@me)/] 2.在内容页里,代码如下: 复制代码代码如下:{dede:fieldname='pubdate'runphp='yes'} @me=strftime('%A %B-%d %Y  %H:%M:%S',@me); {/dede:field} dedecms日期时间标签

下面的内容将向大家详细的说明时间标签的使用情况,代码如下: 复制代码代码如 下:[field:pubdatefunction='strftime("%Y-%m-%d%H:%M:%S",@me) '/] 2008-11-0111:11:52 [field:pubdatefunction='strftime("%y-%m-%d%H:%M:%S",@me)'/] 08-11-0111:11:52 [field:pubdatefunction='strftime("%m-%d%H:%M:%S",@me)'/] 11-0111:14:20 [field:pubdatefunction='strftime("%m-%d%H:%M",@me)'/] 11-0111:14 [field:pubdatefunction='strftime("%y-%m-%d",@me)'/] 08-11-01 [field:pubdatefunction='strftime("%y年%m月%d日",@me)'/]

PHP选择题

选择题 1.关于PHP代码的开始和结束标签书写正确的是() A. B. C. D. 2.下面针对PHP的描述错误的是() 是一种脚本语言 是免费的,开源的 只能运行在WINDOWS操作系统中 的执行效率很高 3.在中,如果想开启PHP中短标签方式,应该将()设置为“ON 任意情况下,PHP代码的结束标签“”都是可有可无的() A.正确 B.错误 5.下面选择中不属于WEB服务器的是() 6.下列不属于PHP注释的是() A. C. D./* */ 7.下列选项中不符合PHP变量命名规定的是() A.$_Q B.$a_b C.$_8397 D.$100w 8.下列选项中不属于PHP数据类型的是() A.数组 B.对象 C.变量 D.字符串 9.下列表达式中能够成立的是() ==‘2000’ ===‘2000’ !=‘2000’ !==‘2000’ 10.下述代码执行后的结果是() <

Function fun($a) { $result=$a*$a; echo ‘1’; retrun $result; } echo fun(1) fun(1); > 11.有else if块的选择结构是() A.基本if选择结构 选择结构 if选择结构 选择结构 12.下列关于if-else if选择结构的说法正确的是() A.多个else if块之间的顺序可以改变,改变之后对程序的执行结果没有影响 B. 多个else if块之间的顺序可以改变,改变之后可能对程序的执行结果有影响 C. 多个else if块之间的顺序不可以改变,改变后程序编译不通过 D. 多个else if块之间的顺序可以改变,改变后程序编译可以通过 13.下面程序的执行结果是() =80){ echo “要下雨了”; }else if($shidu>=50){ echo “天很阴”; } else if($shidu>=30){ echo “很舒适”; } else if($shidu>=0){ echo “很干燥”; } > 14.下面有关switch选择结构语句的说法正确的是() 选择结构可以完全替代if-else if选择结构 B.条件判断为等值判断,并且判断的条件为字符串时,可以使用switch选择结构 C.条件判断为等值判断,并且判断的条件为整型变量时,可以使用switch选择结构 D.条件判断为等值判断,并且判断的条件为字符时,可以使用switch选择结构 15.下面代码执行结果正确的是()

PHP常用时间戳处理

//今日开始和结束的时间戳 $start = mktime(0 0 0 date('m') date('d') date('Y')); $end = mktime(23 59 59 date('m') date('d') date('Y')); //昨日开始和结束的时间戳 $start = mktime(0 0 0 date('m') date('d') - 1 date('Y')); $end = mktime(23 59 59 date('m') date('d') - 1 date('Y')); //本周开始和结束的时间戳 $start = strtotime(date('Y-m-d' strtotime("this week Monday" time()))); $end = strtotime(date('Y-m-d' strtotime("this week Sunday" time()))) + 24 * 3600 - 1; //上周开始和结束的时间戳 $start = strtotime(date('Y-m-d' strtotime("last week Monday" time()))); $end = strtotime(date('Y-m-d' strtotime("last week Sunday" time()))) + 24 * 3600 - 1; //本月开始和结束的时间戳 $start = mktime(0 0 0 date('m') 1 date('Y')); $end = mktime(23 59 59 date('m') date('t') date('Y')); //上个月开始和结束的时间戳 $start = mktime(0 0 0 date('m') - 1 1 date('Y')); $end = mktime(23 59 59 date('m') - 1 date('t' $start) date('Y')); //今年开始和结束的时间戳 $start = mktime(0 0 0 1 1 date('Y')); $end = mktime(23 59 59 12 31 date('Y')); //去年开始和结束的时间戳 $start = mktime(0 0 0 1 1 date('Y') - 1); $end = mktime(23 59 59 12 31 date('Y') - 1); //获取两个时间戳相差几天

oracle处理日期时间

Oracle时间日期操作 sysdate+(5/24/60/60) 在系统时间基础上延迟5秒 sysdate+5/24/60 在系统时间基础上延迟5分钟 sysdate+5/24 在系统时间基础上延迟5小时 sysdate+5 在系统时间基础上延迟5天 add_months(sysdate,-5) 在系统时间基础上延迟5月 add_months(sysdate,-5*12) 在系统时间基础上延迟5年 上月末的日期:select last_day(add_months(sysdate, -1)) from dual; 本月的最后一秒:select trunc(add_months(sysdate,1),'MM') - 1/24/60/60 from dual 本周星期一的日期:select trunc(sysdate,'day')+1 from dual 年初至今的天数:select ceil(sysdate - trunc(sysdate, 'year')) from dual; 今天是今年的第几周:select to_char(sysdate,'fmww') from dual 今天是本月的第几周:SELECT TO_CHAR(SYSDATE,'WW') - TO_CHAR(TRUNC(SYSDATE,'MM'),'WW') + 1 AS "weekOfMon" FROM dual 本月的天数 SELECT to_char(last_day(SYSDATE),'dd') days FROM dual 今年的天数 select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual 下个星期一的日期 SELECT Next_day(SYSDATE,'monday') FROM dual ============================================ --计算工作日方法 create table t(s date,e date); alter session set nls_date_format = 'yyyy-mm-dd'; insert into t values('2003-03-01','2003-03-03'); insert into t values('2003-03-02','2003-03-03'); insert into t values('2003-03-07','2003-03-08'); insert into t values('2003-03-07','2003-03-09'); insert into t values('2003-03-05','2003-03-07'); insert into t values('2003-02-01','2003-03-31'); -- 这里假定日期都是不带时间的,否则在所有日期前加trunc即可。 select s,e,e-s+1 total_days,

PHP日期函数date格式转换

问题:如下图,已知表sheet1中的数据如下,如何在数据表二 sheet2 中如下引用:当A列学号随机出现的时候,如何在B列显示其对应的物理成绩? 首先我们知道需要用到vlookup函数,那么先介绍一下使用 vlookup函数的几个参数,vlookup是判断引用数据的函数,它总共有四个参数,依次是: 1、判断的条件 2、跟踪数据的区域 3、返回第几列的数据 4、是否精确匹配 根据以上参考,和上述在sheet2表的B列显示问题的实际需求,在sheet2表的B2单元格输入这个公式是: =vlookup(a2,sheet1!$a$2:$f$100,6,true) 详细说明一下,在此vlookup函数例子中各个参数的使用说明: 1、a2 是判断的条件,也就是说sheet1表和sheet2表中学号相同者,即sheet2表a列对应的数据和sheet1表中学号列a列的数据相同方能引用; 2、sheet1!$a$2:$f$100 是数据跟踪的区域,因为需要引用的数据在f列,所以跟踪的区域至少在f列,sheet1!是不同表间引用所用的表名称,和标志是表间引用的!符号,$是绝对引用(关于绝对引用可以参考这里),$a$2:$f$100 表明从A2到F100单元格的数据区域,如果数据区域不止100,那么可以直接使用A:F,这样虽然方便但是有风险,因为如果sheet1表的下方还有其它数据,就有可能出现问题;

3、6 这是返回什么数的列数,如上图的物理是第6列,所以应该是6,如果要求英语的数值,那么此处应该是5 4、是否绝对引用,如果是就输入 true 如果是近似即可满足条件那么输入false (近似值主要 用于带小数点的财务、运算等) 5、vlookup是垂直方向的判断,如果是水平方向的判断可使用Hlookup函数 结果如下图:

PHP获取系统当前时间date函数

PHP获取系统当前时间date函数.txt偶尔要回头看看,否则永远都在追寻,而不知道自己失去了什么。男人掏钱是恋人关系,女人掏钱是夫妻关系,男女抢着掏钱是朋友关系。男人爱用眼睛看女人,最易受美貌迷惑;女人爱用心看男人,最易受伤心折磨。使用函式 date() 实现 显示的格式: 年-月-日小时:分钟:秒 相关时间参数: a - "am" 或是 "pm" A - "AM" 或是 "PM" d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31" D - 星期几,三个英文字母; 如: "Fri" F - 月份,英文全名; 如: "January" h - 12 小时制的小时; 如: "01" 至 "12" H - 24 小时制的小时; 如: "00" 至 "23" g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12" G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23" i - 分钟; 如: "00" 至 "59" j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31" l - 星期几,英文全名; 如: "Friday" m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12" n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12" M - 月份,三个英文字母; 如: "Jan" s - 秒; 如: "00" 至 "59" S - 字尾加英文序数,二个英文字母; 如: "th","nd" t - 指定月份的天数; 如: "28" 至 "31" U - 总秒数 w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六) Y - 年,四位数字; 如: "1999" y - 年,二位数字; 如: "99" z - 一年中的第几天; 如: "0" 至 "365" 可以自由设定显示的内容,连接符号或是显示位置,例如date("m-d H") 或者date("dmY");?>等php中的日期处理 加入时间:2004-12-18 17:35:22 大小:12 KB 阅读次数:1405PHP中的日期处理 转贴:xiaxia 日期:2004-05-26 人气:9 我正打算用PHP编写一种帮助处理系统。我发现我必须知道处理完最后一位客户的问题后已经过去了多长时间?当我过去用ASP时解决这个问题相当简单,ASP有相应的函数 DateDiff 可以给出两个日期间间隔多少月、多少天和多少秒。当我搜寻完PHP手册后我发现PHP并没

PHP中strtotime函数使用方法

PHP中strtotime函数使用方法 PHP中strtotime函数使用方法 一,获取指定日期的unix时间戳 strtotime("2009-1-22")示例如下: 1.echostrtotime("2009-1-22") 结果:1232553600 说明:返回2009年1月22日0点0分0秒时间戳 二,获取英文文本日期时间 示例如下: 便于比较,使用date将当时间戳与指定时间戳转换成系统时间(1)打印明天此时的时间戳strtotime("+1day") 当前时间: 1.echodate("Y-m-dH:i:s",time()) 结果:2009-01-2209:40:25 指定时间: 1.echodate("Y-m-dH:i:s",strtotime("+1day")) 结果:2009-01-2309:40:25 (2)打印昨天此时的时间戳strtotime("-1day") 当前时间: 1.echodate("Y-m-dH:i:s",time()) 结果:2009-01-2209:40:25

指定时间: 1.echodate("Y-m-dH:i:s",strtotime("-1day")) 结果:2009-01-2109:40:25 (3)打印下个星期此时的时间戳strtotime("+1week") 当前时间: 1.echodate("Y-m-dH:i:s",time()) 结果:2009-01-2209:40:25 指定时间: 1.echodate("Y-m-dH:i:s",strtotime("+1week")) 结果:2009-01-2909:40:25 (4)打印上个星期此时的时间戳strtotime("-1week") 当前时间: 1.echodate("Y-m-dH:i:s",time()) 结果:2009-01-2209:40:25 指定时间: 1.echodate("Y-m-dH:i:s",strtotime("-1week")) 结果:2009-01-1509:40:25 (5)打印指定下星期几的'时间戳strtotime("nextThursday")当前时间: 1.echodate("Y-m-dH:i:s",time()) 结果:2009-01-2209:40:25 指定时间: 1.echodate("Y-m-dH:i:s",strtotime("nextThursday"))

如何实现PHP时间戳与日期的转换

如何实现PHP时间戳与日期的转换 众多的PHP程序员也许对PHP时间戳已有所了解,那么我们如何应用它来获取具体的日期呢?以下是介绍一下PHP时间戳获取当前时期的具体方式。 现在讲述一下其实现的基本功能:获取某个日期的时间戳,或获取某个时间的PHP时间戳。strtotime能将任何英文文本的日期时间描述解析为Unix时间戳,我们结合mktime()或date()格式化日期时间获取指定的时间戳,实现所需要的日期时间。 第一:获取指定日期的unix时间戳 strtotime(”2009-1-22〃) 示例如下:echo strtotime(”2009-1-22“) 结果:1232553600说明:返回2009年1月22日0点0分0秒时间戳。 第二:获取英文文本日期时间示例如下:便于比较,使用date将当时间戳与指定时间戳转换成系统时间 (1)打印明天此时的时间戳strtotime(”+1 day“)当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25;指定时间:echo date(”Y-m-d H:i:s”,strtotime(”+1 day”)) 结果:2009-01-23 09:40:25。 (2)打印昨天此时的PHP时间戳strtotime(”-1 day“)当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25;指定时间:echo date(”Y-m-d H:i:s”,strtotime(”-1 day”)) 结果:2009-01-21 09:40:25。 (3)打印下个星期此时的时间戳strtotime(”+1 week“)当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25;指定时间:echo date(”Y-m-d H:i:s”,strtotime(”+1 week”)) 结果:2009-01-29 09:40:25。 (4)打印上个星期此时的时间戳strtotime(”-1 week“)当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25;指定时间:echo date(”Y-m-d H:i:s”,strtotime(”-1 week”)) 结果:2009-01-15 09:40:25。 (5)打印指定下星期几的PHP时间戳strtotime(”next Thursday“)当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25;指定时间:echo date(”Y-m-d H:i:s”,strtotime(”next Thursday”)) 结果:2009-01-29 00:00:00。 (6)打印指定上星期几的时间戳strtotime(”last Thursday“)当前时间:echo date(”Y-m-d H:i:s”,time()) 结果:2009-01-22 09:40:25;指定时间:echo date(”Y-m-d H:i:s”,strtotime(”last Thursday”)) 结果:2009-01-15 00:00:00。

php计算日期差

php中如何计算时间、日期差 在php中计算时间差有时候是件麻烦的事!不过只要你掌握了日期时间函数的用法那这些也就变的简单了: 一个简单的例子就是计算借书的天数,这需要php根据每天的日期进行计算,下面就来谈谈实现这种日期计算的几种方法: (1) 如果有数据库就很容易了!若是MSSQL可以使用触发器!用专门计算日期差的函数datediff()便可! 若是MYSQL那就用两个日期字段的差值计算的计算结果保存在另一个数值型字段中!用时调用便可! (2)如果没有数据库,那就得完全用php的时间日期函数!下面主要说明之: 例:计算1998年5月3日到1999-6-5的天数:

若mktime()中的参数缺省,那表示使用当前日期,这样便可计算从借书日期至今的天数. php计算日期差天数 "; //今天到2008年9月9日还有多少天 $Date_1=date("Y-m-d"); $Date_2="2008-09-09"; $d1=strtotime($Date_1); $d2=strtotime($Date_2); $Days=round(($d2-$d1)/3600/24); Echo "今天到2008年9月9日还有".$Days."天"; ?>

最全最详细的PHP面试题(带有答案)

1 php面试题及答案(原创)收藏 基础题: 1.表单中get与post提交方法的区别? 答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息. 2.session与cookie的区别? 答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放 cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。 两者都可通过时间来设置时间长短 3.数据库中的事务是什么? 答:事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成, 事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。 简述题: 1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)**************** 答:echo date('Y-m-d H:i:s', strtotime('-1 days')); 2、echo(),print(),print_r()的区别(3分) 答:echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) print()只能打印出简单类型变量的值(如int,string) print_r()可以打印出复杂类型变量的值(如数组,对象) echo 输出一个或者多个字符串 3、能够使HTML和PHP分离开使用的模板(1分) 答:Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate 5、使用哪些工具进行版本控制?(1分) 答:cvs,svn,vss; 6、如何实现字符串翻转?(3分) 答:echo strrev($a); 7、优化MYSQL数据库的方法。(4分,多写多得) 答: 1、选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL,例如'省份,性别',最好设置为ENUM 2、使用连接(JOIN)来代替子查询: 3、使用联合(UNION)来代替手动创建的临时表 4、事务处理:

PHP日期时间,字符串处理,表单提交,文件上传

PHP网站编程 PHP日期时间字符串处理表单提交文件上传 PHP日期和时间 1.PHP 的date() 函数用于格式化时间或日期 可以在字母之间插入其他字符,比如"/"、"." 或者"-",这样就可以增加附加格式了:echo date('Y-m-d H:i:sa'); //直接输入日期和时间 echo date('今天的日期和时间为:Y/m/d H:i:sa'); //可以插入无关的字符串 2. 什么是时间戳(Timestamp)? 时间戳是自1970 年 1 月 1 日(00:00:00 GMT)以来的秒数。它也被称为Unix 时间戳(Unix Timestamp) (1)time()函数可以获取当前的时间戳,并且可以通过设置时间戳的值。 (2)mktime()函数可以生成给定日期时间的时间戳。 mktime(hour,minute,second,month,day,year,is_dst) (3)将日期转换成时间戳:strtotime()将人可读的日期转换为Unix时间戳。 echo strtotime('2007-10-31 14:31:33'); 设置时区 修改php.ini文件中的设置,找到[date]下的;date.timezone = 选项,将该项修改为date.timezone=Asia/Shanghai,然后重新启动apache服务器。 putenv()函数可以设置当前的默认时区。 date_default_timezone_set()可以设置当前的默认时区。 date_default_timezone_get()可以获取当前的默认时区。 取得本地时间localtime()函数可以取得本地时间数据,然后返回一个数组。

PHP获取当前url路径的函数及服务器变量

1,$_SERVER["QUERY_STRING"] 说明:查询(query)的字符串 2,$_SERVER["REQUEST_URI"] 说明:访问此页面所需的URI 3,$_SERVER["SCRIPT_NAME"] 说明:包含当前脚本的路径 4,$_SERVER["PHP_SELF"] 说明:当前正在执行脚本的文件名 实例: 1,https://www.360docs.net/doc/dd10352991.html,/(直接打开主页) 结果: $_SERVER["QUERY_STRING"] = "" $_SERVER["REQUEST_URI"] = "/" $_SERVER["SCRIPT_NAME"] = "/index.php" $_SERVER["PHP_SELF"] = "/index.php" 2,https://www.360docs.net/doc/dd10352991.html,/?p=222 (附带查询) 结果: $_SERVER["QUERY_STRING"] = "p=222" $_SERVER["REQUEST_URI"] = "/?p=222" $_SERVER["SCRIPT_NAME"] = "/index.php" $_SERVER["PHP_SELF"] = "/index.php" 3,https://www.360docs.net/doc/dd10352991.html,/index.php?p=222&q=biuuu 结果: $_SERVER["QUERY_STRING"] = "p=222&q=biuuu" $_SERVER["REQUEST_URI"] = "/index.php?p=222&q=biuuu" $_SERVER["SCRIPT_NAME"] = "/index.php" $_SERVER["PHP_SELF"] = "/index.php" $_SERVER["QUERY_STRING"]获取查询语句,实例中可知,获取的是?后面的值$_SERVER["REQUEST_URI"] 获取https://www.360docs.net/doc/dd10352991.html,后面的值,包括/ $_SERVER["SCRIPT_NAME"] 获取当前脚本的路径,如:index.php $_SERVER["PHP_SELF"] 当前正在执行脚本的文件名 当前url:"http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']

PHP时间戳与日期之间的转换

1.php中时间转换函数 strtotime(“today”) date("Y-m-d H:i",$unixtime) 2.php中获得今天零点的时间戳 要获得零点的unix时间戳,可以使用$todaytime=strtotime(“today”), 然后再使用date("Y-m-d H:i",$todaytime)转换为日期。 3.php中时间戳转换为日期,并按照时间显示不同的内容,如刚刚,分钟前,小时前,今天,昨天等 /*时间转换函数*/ function transTime($ustime) { $ytime = date("Y-m-d H:i",$ustime); $rtime = date("n月j日H:i",$ustime); $htime = date("H:i",$ustime); $time = time() - $ustime; $todaytime = strtotime("today"); $time1 = time() - $todaytime; if($time < 60){ $str = '刚刚'; }else if($time < 60 * 60){ $min = floor($time/60); $str = $min.'分钟前'; }else if($time < $time1){ $str = '今天'.$htime; }else{ $str = $rtime; } return $str; } 在这个函数中你可以添加更多的比较使显示的日期更加具体,比如添加秒钟前,前天等更具体的日期。

4.php日期中补0与不补0 echo date('Y-m-d'); 显示2012-08-08 echo date('Y-n-j'); 显示2012-8-8

相关文档
最新文档