函数的格式为: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);
推荐阅读
- word如何目录页码对齐,word怎么目录页码对齐
- oracle查数据慢的原因,oracle导入数据特别慢
- erp信息管理系统定制方案设计,erp系统定制开发
- c语言取子串函数流程图 c语言截取子串
- jquery输出标签名,jquery输出结果到页面
- 即时战斗古风游戏,即时战斗类单机游戏
- mysql表格怎么打标题 mysql怎么创建表格
- mongodb怎么进行主从切换,mongodb 主备切换
- o2o电商平台如何做,o2o电商平台如何做销售