如果仅需要得到当前c 得到系统时间间,则可以使用哪个函数

2025人阅读
IT之路(1)
问题引出:
Sql Server 里 dateTime 数据类型,会精确到毫秒。如果我们 在插入一条数据的时候,使用 GetDate() 记录 这个记录插入的时间,则会插入当前时间,精确到毫秒。在查询 的时候 我们 并不需要精确到 毫秒,精确到 天 即可。
使用 Convert() 转换。 如:Select time = Convert(varchar(100),time,23)。第三个参数指定转换 格式码。
更多参考:
Select&CONVERT(varchar(100),&GETDATE(),&0):&05&16&AM& &Select&CONVERT(varchar(100),&GETDATE(),&1):&05/16/06& &Select&CONVERT(varchar(100),&GETDATE(),&2):&06.05.16& &Select&CONVERT(varchar(100),&GETDATE(),&3):&16/05/06& &Select&CONVERT(varchar(100),&GETDATE(),&4):&16.05.06& &Select&CONVERT(varchar(100),&GETDATE(),&5):&16-05-06& &Select&CONVERT(varchar(100),&GETDATE(),&6):&16&05&06& &Select&CONVERT(varchar(100),&GETDATE(),&7):&05&16,&06& &Select&CONVERT(varchar(100),&GETDATE(),&8):&10:57:46& &Select&CONVERT(varchar(100),&GETDATE(),&9):&05&16&:46:827AM& &Select&CONVERT(varchar(100),&GETDATE(),&10):&05-16-06& &Select&CONVERT(varchar(100),&GETDATE(),&11):&06/05/16& &Select&CONVERT(varchar(100),&GETDATE(),&12):&060516& &Select&CONVERT(varchar(100),&GETDATE(),&13):&16&05&:46:937& &Select&CONVERT(varchar(100),&GETDATE(),&14):&10:57:46:967& &Select&CONVERT(varchar(100),&GETDATE(),&20):&&10:57:47& &Select&CONVERT(varchar(100),&GETDATE(),&21):&&10:57:47.157& &Select&CONVERT(varchar(100),&GETDATE(),&22):&05/16/06&10:57:47&AM& &Select&CONVERT(varchar(100),&GETDATE(),&23):&& &Select&CONVERT(varchar(100),&GETDATE(),&24):&10:57:47& &Select&CONVERT(varchar(100),&GETDATE(),&25):&&10:57:47.250& &Select&CONVERT(varchar(100),&GETDATE(),&100):&05&16&AM& &Select&CONVERT(varchar(100),&GETDATE(),&101):&05/16/2006& &Select&CONVERT(varchar(100),&GETDATE(),&102):&& &Select&CONVERT(varchar(100),&GETDATE(),&103):&16/05/2006& &Select&CONVERT(varchar(100),&GETDATE(),&104):&16.05.2006& &Select&CONVERT(varchar(100),&GETDATE(),&105):&16-05-2006& &Select&CONVERT(varchar(100),&GETDATE(),&106):&16&05&2006& &Select&CONVERT(varchar(100),&GETDATE(),&107):&05&16,&2006& &Select&CONVERT(varchar(100),&GETDATE(),&108):&10:57:49& &Select&CONVERT(varchar(100),&GETDATE(),&109):&05&16&:49:437AM& &Select&CONVERT(varchar(100),&GETDATE(),&110):&05-16-2006& &Select&CONVERT(varchar(100),&GETDATE(),&111):&& &Select&CONVERT(varchar(100),&GETDATE(),&112):&& &Select&CONVERT(varchar(100),&GETDATE(),&113):&16&05&:49:513& &Select&CONVERT(varchar(100),&GETDATE(),&114):&10:57:49:547& &Select&CONVERT(varchar(100),&GETDATE(),&120):&&10:57:49& &Select&CONVERT(varchar(100),&GETDATE(),&121):&&10:57:49.700& &Select&CONVERT(varchar(100),&GETDATE(),&126):&T10:57:49.827&
SqlServer中得到当前日期(convert函数,getdate函数)
函数GETDATE()的返回值在显示时只显示到秒。实际上,SQL Sever内部时间可以精确到毫秒级(确切地说,可以精确到3.33毫秒)。
..类型0,9,和13总是返回四位的年。对其它类型,要显示世纪,把style值加上100。类型13和14返回24小时时钟的时间。类型0,7,和 13返回的月份用三位字符表示(用Nov代表November).
对表11.1中所列的每一种格式,你可以把类型值加上100来显示有世纪的年(例如,00年将显示为2000年)。例如,要按日本标准显示日期,包括世纪,你应使用如下的语句:
SELECT CONVERT(VARCHAR(30),GETDATE(),111)
在这个例子中,函数CONVERT()把日期格式进行转换,显示为
要得到不同格式的日期和时间,你需要使用函数CONVERT()。例如,当下面的这个语句执行时,显示的时间将包括毫秒:
SELECT CONVERT(VARCHAR(30),GETDATE(),9)
注意例子中数字9的使用。这个数字指明了在显示日期和时间时使用哪种日期和时间格式。当这个语句执行时,将显示如下的日期和时间:
简体中文OS:02&&&6
2007&&&4:33:56:530PM
英文OS:Nov 30 :55:170AM
convert函数中的style参数提供了datetime或smalldatetime转换到char或varchar的多种日期显示格式。 Style的数字参数决定日期被如何显示。年可以被显示成两位数(yy),也可以显示成4位数(yyyy)。例如,将style参数赋值为100,可以得
到一个4位的年号,即包括世纪值(yyyy).
下表列出了style参数的可用值及可以使用的各种日期格式。当同smalldatetime类型一起使用style参数时,那些包括秒和毫秒的格式将在其位值显示零。
类型值&&&&&&&&&&标准&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&输出&&&&
0&&&&&&&&&&&&&&&Default&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&mon
dd yyyy hh:miAM&&&&
1&&&&&&&&&&&&&&&USA&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&mm/dd/yy&&&
2&&&&&&&&&&&&&&&ANSI&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&yy.mm.dd&&&
3&&&&&&&&&&&&&&&British/French&&&&&&&&&&&&&&&&&&&&&&&&&&dd/mm/yy&&&&
4&&&&&&&&&&&&&&&German&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&dd.mm.yy&&&&
5&&&&&&&&&&&&&&&Italian&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&dd-mm-yy&&&&
6&&&&&&&&&&&&&&&-&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&dd
mon yy&&&&
7&&&&&&&&&&&&&&&-&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&mon
8&&&&&&&&&&&&&&&-&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&hh:mi:ss&&&
9&&&&&&&&&&&&&&&Default
+ millisecondsR11;mon&&&&&&&&&&&dd
yyyy hh:mi:ss:mmmAM(or )&&&&
10&&&&&&&&&&&&&&USA&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&mm-dd-yy&&&&
11&&&&&&&&&&&&&&JAPAN&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&yy/mm/dd&&&&
12&&&&&&&&&&&&&&ISO&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&yymmdd&&&&
13&&&&&&&&&&&&&&Europe&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Default
+ millisecondsR11;dd mon yyyy&&&&hh:mi:ss:mmm(24h)&&&&
14&&&&&&&&&&&&&&-&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&hh:mi:ss:mmm(24h)&&&&
类型值前面加1,比如101 则显示 mm/dd/yyyy&&
---------------------------------------------------------------------------------
有时侯在数据库的某些字段因特殊考虑的关系
这些字段是用char或nchar的格式来储存日期
如果希望将这些字段中转成一致的日期格式(如yyyy/mm/dd)
例如转成的话
请试着参考以下的语法…
SELECT CONVERT(varchar(10),CONVERT(datetime,employee_birthday,111),111)
FROM employee
其它格式转换的范例如下:
--YYYY/MM/DD
Select Convert(varchar(10),Getdate(),111)
--YYYYMMDD
Select Convert(varchar(10),Getdate(),112)
--HH:MM:SS
Select Convert(varchar(8),Getdate(),108)
--HH:MM:SS:mmm
Select Convert(varchar(12),Getdate(),114)
---------------------------------------------------------------------------------
如何用sql语言只获得数据库当前日期,且格式为&yyyy-mm-dd&?
select convert(char(10),getdate(),120)
---------------------------------------------------------------------------------
--字符转换为日期时,Style的使用
--1. Style=101时,表示日期字符串为:mm/dd/yyyy格式
SELECT CONVERT(datetime,'11/1/)
--结果: 00:00:00.000
--2. Style=101时,表示日期字符串为:dd/mm/yyyy格式
SELECT CONVERT(datetime,'11/1/)
--结果: 00:00:00.000
DECLARE @dt datetime
SET @dt=''
--1. Style=101时,表示将日期转换为:mm/dd/yyyy 格式
SELECT CONVERT(varchar,@dt,101)
--结果:01/11/2003
--2. Style=103时,表示将日期转换为:dd/mm/yyyy 格式
SELECT CONVERT(varchar,@dt,103)
--结果:11/01/2003
SELECT CONVERT(varchar,'',101)
--示例 ,在下面的示例中,第一个CONVERT转换未指定style,转换的结果受SET DATAFORMAT的影响,第二个CONVERT转换指定了style,转换结果受style的影响。
--设置输入日期顺序为 日/月/年
SET DATEFORMAT DMY
--不指定Style参数的CONVERT转换将受到SET DATEFORMAT的影响
SELECT CONVERT(datetime,'2-1-2005')
00:00:00.000
--指定Style参数的CONVERT转换不受SET DATEFORMAT的影响
SELECT CONVERT(datetime,'2-1-)
00:00:00.000
--示例,在下面的代码中,同样的SET DATEFORMAT设置,输入日期的世纪部分与不输入日期的世纪部分,解释的日期结果不同。
DECLARE @dt datetime
--设置SET DATEFORMAT为:月日年
SET DATEFORMAT MDY
--输入的日期中指定世纪部分
SET @dt='01-2002-03'
SELECT @dt
00:00:00.000
--输入的日期中不指定世纪部分
SET @dt='01-02-03'
SELECT @dt
00:00:00.000
--示例,在下面的代码中,不包含日期分隔符的字符日期,在不同的SET DATEFORMAT设置下,其解释的结果是一样的。
DECLARE @dt datetime
--设置SET DATEFORMAT为:月日年
SET DATEFORMAT MDY
SET @dt='010203'
SELECT @dt
00:00:00.000
--设置SET DATEFORMAT为:日月年
SET DATEFORMAT DMY
SET @dt='010203'
SELECT @dt
00:00:00.000
--输入的日期中包含日期分隔符
SET @dt='01-02-03'
SELECT @dt
00:00:00.000
--以下示例演示了在不同的语言环境(SET LANGUAGE)下,DATENAME与CONVERT函数的不同结果。
USE master
--设置会话的语言环境为: English
SET LANGUAGE N'English'
DATENAME(Month,GETDATE()) AS [Month],
DATENAME(Weekday,GETDATE()) AS [Weekday],
CONVERT(varchar,GETDATE(),109) AS [CONVERT]
--设置会话的语言环境为: 简体中文
SET LANGUAGE N'简体中文'
DATENAME(Month,GETDATE()) AS [Month],
DATENAME(Weekday,GETDATE()) AS [Weekday],
CONVERT(varchar,GETDATE(),109) AS [CONVERT]
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5021次
排名:千里之外
(3)(2)(2)(1)转自:http://blog.csdn.net/painsonline/article/details/7026667
PHP获取系统当前时间
使用函式 date() 实现&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&转自zjriso空间
&?php echo $showtime=date(&Y-m-d H:i:s&);?&
显示的格式: 年-月-日 小时:分钟:秒
相关时间参数:
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中的日
加入时间: 17:35:22 大小:12 KB 阅读次数:1405PHP中的日期处理
转贴:xiaxia&& 日期:&& 人气:9
我正打算用PHP编写一种帮助处理系统。我发现我必须知道处理完最后一位客户的问题后已经过去了多长
时间?当我过去用ASP时解决这个问题相当简单,ASP有相应的函数DateDiff可以给出两个日期间间隔多少
月、多少天和多少秒。当我搜寻完PHP手册后我发现PHP并没有类似的函数。
本文包含以下内容:
1、 得到目前的日期和时间-我们有多少种方式?
2、 改变日期显示的方式-日期和时间的显示形式
3、 转换现在的日期为Unix的时间戳值
4、 改变日期
a. 增加时间
b. 减去时间
c. 找出两日期之间的间隔
5、 为PHP添加DateAdd函数
6、 为PHP添加DateDiff函数
**得到目前的日期和时间
在Unix中,时间的表示方式为计算从日零时起所过去的秒数,这称为UNIX 时间戳(Unix
如果我们有这样一段的代码:
echo time();
将返回&#820
而此时的时间为日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&];
返回的结果为:
除了&weekday&,该数组的其他部分为:
&seconds& –秒
&minutes& –分
&hours& –小时
“mday& - 本月的第几天
&wday& -本周的第几天(数字)
&mon& -月(数字)
&year& –年
&yday& - r本年的第几天(数字)
&month& -月份全名
我们现在可以得到容易辨认的日期和时间。那么其他呢?
**转换现在的日期为Unix的时间戳值
通常你必须处理一些日期或时间格式的数据。打开M$的一个Access数据库,所有的日期都以YYYY/MM/DD的
格式存储,加入目前的日前即为。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 = &&;
//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数据库单纯获得日期更复杂的情况,我们得到一个以下格式的日期和时间:
02:40:21 PM
// 来自Access的字符串
$date_time_string = & 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();
$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&]);
看起来有一些令人感到迷惑。我将用一些变量来使上面的程序看起来更容易了解。
// 将目前的时间戳值放入一数组内
$timestamp = time();
$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);
现在我们将由getdate()所产生的时间戳值放入相对应的名称变量中,所以代码变得相对容易阅读和理解
。现在如果我们需要在目前的时间上加上19个小时,我们用$hours+19代替mktime()函数中的$hours。
mktime()将自动为我们将时间转到第二天。
// 将目前的时间戳值放入一数组内
$timestamp = time();
echo strftime( &%Hh%M %A %d %b&,$timestamp);
$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季度
y Day of year一年的数
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 +=$
case &q&: $month +=($number*3);
case &m&: $month +=$
case &w&: $day+=$
case &ww&: $day+=($number*7);
case &h&: $hours+=$
case &n&: $minutes+=$
case &s&: $seconds+=$
$timestamp = mktime($hours ,$minutes, $seconds,$month ,$day, $year);
我们可以将上面的代码保存为dateadd.inc文件,然后运行以下代码:
include('dateadd.inc');
$temptime = time();
echo strftime( &%Hh%M %A %d %b&,$temptime);
$temptime = DateAdd(&n& ,50,$temptime);
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);
case &d&: $retval = bcdiv( $timedifference,86400);
case &h&: $retval = bcdiv ($timedifference,3600);
case &n&: $retval = bcdiv( $timedifference,60);
case &s&: $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: &.$
如果一切顺利,你可以看到以下结果:
Current time: 16h23 Saturday 03 Jun
Time plus 50 minutes: 17h13 Saturday 03 Jun
Interval between two times: 50
如果你在Unix机器上运行PHP,你必须编译PHP支持BC高精度函数。你必须从以下地址
下载BC库,然后将其解压到PHP4的根目录下,重新编译PHP,
编译时要加上--enable-bcmath的选项。(详细说明见PHP4中README.BCMATH)。PHP4的Windows版本则不
需要做任何修补即可直接使用BC高精度函数。
现在你已经得到处理日期和时间的函数,剩下的就是如何将其运用到你的PHP程序中。
php时间显示例
加入时间: 17:22:53 大小:1 KB 阅读次数:1564
第一种:简单(供学习用)
$today=date(&Y-m-d G:i:s&);
echo &&center&$today&/center&&;
Format Time
Function formatTime($time,$type=&1&){
switch($type){
case 1;#8:58 Tuesday
return date(&Y.m.d H:i&,$time).&&font color=blue&&.date(& l&,$time).&&/font&&;
case 2;#June 2002
return date(&M Y&,$time);
case 3;# 18:58
return date(&Y.m.d H:i&,$time);
case 4;#06-04 AM
return date(&m-d A&,$time);
case 5;#06-04 18:58
return date(&m.d H:i&,$time);
}不知道对于两个以字符串格式存储的日期得比较会有什么结果,例如 ‘′ ‘′
,这种日期最好用什么方法来比较呢?就大小而论
leehao July 17th,
/*日期比较*/
$Date_1=&&;
$Date_2=&&;
首先用explode这个函数来拆分字符串
explode(&这引号里面是条件来的哦,改成:就会用:来拆分字符串的,可以应用到很多方面去的&,后面要拆
分的字符串)
$Date_explode_1=explode(&-&,$Date_1);
$Date_explode_2=explode(&-&,$Date_2);
拆分后的字符串,我们通过使用mktime函数来计算时间,
必须说明一下的是mktime计算出来的时间是用秒来算的哦,
后面就简单啦,具体可以看手册,里面详细得很
$Day_1=mktime(0,0,0,$Date_explode_1[1],$Date_explode_1[2],$Date_explode_1[0]);
$Day_2=mktime(0,0,0,$Date_explode_2[1],$Date_explode_2[2],$Date_explode_2[0]);
$Days=round(($Day_1-$Day_2)/3600/24);
echo &您要的结果是 $Days 天哦&;
请问如何得到90天以后的日期
加入时间: 18:09:53 大小:1 KB 阅读次数:158
//获取今天的时间信息
$Y=date(Y);
$m=date(m);
$d=date(d);
//$m为月,$d为天,$Y为年,&+&号表示之后,用&-&号可以得到多少天前的日期,&Y年m月d日&,只是显示的格
式,你可以改成&Y-m-d&,
$out_date1=date( &Y年m月d日&, mktime(0,0,0,$m,$d+7,$Y) );//一周后
$out_date2=date( &Y年m月d日&, mktime(0,0,0,$m,$d+14,$Y) );//二周后
$out_date3=date( &Y年m月d日&, mktime(0,0,0,$m+1,$d,$Y) );//一个月后
$out_date4=date( &Y年m月d日&, mktime(0,0,0,$m+2,$d,$Y) );//二个月后
$out_date5=date( &Y年m月d日&, mktime(0,0,0,$m+3,$d,$Y) );//三个月后
$out_date6=date( &Y年m月d日&, mktime(0,0,0,$m+6,$d,$Y) );//六个月后
$out_date7=date( &Y年m月d日&, mktime(0,0,0,$m,$d,$Y+1) );//一年后
echo date(&Ymd&, time() + 90*86400);
echo date(&Y-m-d&,strtotime(& +90day&));
date(&Y-m-d&,strtotime(&+90 day&));
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
(1)(5)(5)(2)(1)(2)(4)(1)(3)(1)(4)(2)(2)(2)(1)(2)(4)(1)(2)(2)(9)(5)(4)(5)(2)(1)(6)(1)(2)(1)(1)(2)(1)(1)(1)(2)(9)(5)(1)(5)(5)(4)
访问:128298次
积分:1724
积分:1724
排名:千里之外
原创:42篇
转载:77篇}

我要回帖

更多关于 时间段内可以使用软件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信