[Zend权威认证试题讲解]第七章 - 管理日期与时间
从某一点上来看,几乎所有的网站都需要处理日期与时间。假如你需要收集用户的生日,或者记录某个特定事件的发生时间,PHP的日期函数将很好的帮助你完成任务。但是PHP的日期/时间管理功能并不完美。它基于UNIX时间戳运行,容易受到攻击,作为开发者,你必须谨慎处理可能遇到的恶意数据。
同时,在Web上进行日期管理是一件国际性的事务。你必须能依据时区、地区的不同来显示对应的日期信息。y's+i4b`X%HDd
本章测试题将考察以上所述的全部内容。
4l9Msl q5dJs\
问题
ce#tO"A8tX1@
1.以下脚本在Windows系统上输出什么?[code]
<?php
echo strtotime ("November 11, 1952");2|[(Kd l @F
?>[/code]A.-14462
B.14462
C.-1&n0@W5y,]YC
D.0
E.一个错误7R4\+?h:s2_8K
(q&{~J pqwTGK
2.哪个函数能根据区域设置来格式化输出一个时间戳?|.Qkh.\-J(|
5jPk}+WC2?D
答案:__________
%N{)h,KwsOx
3.以下脚本是做什么的?[code]
<?php P SM*Nm5_9@U?Q9d!B
$a = array_sum (explode (' ', microtime()));W%Did |*DK-j
for ($i = 0; $i < 10000; $i++);-Zqt&ic B L
$b = array_sum (explode (' ', microtime()));
echo $b - $a;`2c E(u%\y"W#R
?>[/code]A.测算for循环的执行时间
B.测定服务器的时钟频率
C.计算操作系统的硬件时钟频率与软件时钟频率的差
D.测算for循环、一个array_sum()函数与一个microtime()的总执行时间O;bt^o9{ x~ [%W
E.测算for循环、两个array_sum()函数与两个microtime()的总执行时间Q5RkR^Z1l+m
R#s6}?b
4.以下脚本的标记处应该填入什么函数?[code]
<?php
for ($i = 0; $i < 100; $i++) {
$day = rand (1, 31);
$month = rand (1, 12);
$year = rand (1000, 2500);
if (????????? ($month, $day, $year)) {P-^ X_'Z
echo "$month/$day/$year is a valid date\n";S#p,a`E)?)?g
} else {H^qu]V x2w Jp
echo "$month/$day/$year is not a valid date\n";
}.\P/\U&[{
}
?>[/code]A.date()Q)G^3I-Ut3J)Y
B.strftime()
C.microtime()
D.checkdate()~ W8_P!A$G{zN*PN
E.mktime()
8? z k4d@|Y;wa/T
5J4m3PI%\G] C
5.以下脚本在Windows系统中输出什么?[code] $a1h#V8mzkq` |
<?php
echo mktime (0, 0, 0, 11, 11, 1952); // November 11, 1952H1P-?!O+l{
?>[/code]A.一个警告
B.一个错误
C.-1和一个警告
D.-14462
E.一个提示,指出mktime不支持种输入u3o5I(b:y5w9_
;e][1_u P]un
Zs7?Er{$K q FF
6.EST是CST之前的一个时区(就是说任何时候EST都比CST晚一个小时)。那么以下脚本输出什么?[code] :a^.fB,b*] G(V$O
<?php
$a = strtotime ('00:00:00 Feb 23 1976 EST');Nj7aT+n_ xd&Ag
$b = strtotime ('00:00:00 Feb 23 1976 CST');w6[,z\+cM
echo $a - $b;voZm#L:[#V0wZ
?>[/code]A.-3600_4}4\"ZkUm
B.3600T3C8|IU8Kh^
C.0
D.-1
E.1`J$Tr5]]
[1|`6z/?` e.kwg
7.处理数据库中读取的日期数据时,以下那种方法有助于避免bug?(三选)CjV0NK'~8T4a
9ev*@S"C Dp5n?r5n9i7`
A.确保日期数据与服务器使用相同的时区N*Z1i6B HPPs`*Z
B.如果日期需要被转换成UNIX时间戳进行操作,要确保结果不会溢出
C.用数据库功能测试日期的合法性/j*}?iQs
D.如果可能,用数据库功能计算日期的值
E.用代码控制日期只能在PHP中进行处理
bgRuY ag
8.在时区设置为Moscow, Russia的Windows操作系统上运行以下脚本,将输出什么?[code] ^[U_,~b"}[
<?php
echo gmmktime(0, 0, 0, 1, 1, 1970);
?>[/code]A.输出数字0
B.输出数字-1Y6r.U+@4Gn
C.输出数字1
D.报错
E.什么都不输出 ]|Vr1jW$D
%P Pi&b1vLCPr1F
9.以下哪个选项对time函数的描述最准确?
A.返回从UNIX纪元开始到现在经过的秒数
B.以GMT时区为基准,返回从UNIX纪元开始到现在经过的秒数
C.以本地时区为基准,返回从UNIX纪元开始到现在经过的秒数
D.计算从UNIX纪元开始经过的时间,并以整型数字表示9Y4ta#v X j
E.以上都对.C6f@LB&w(^ u F