mktime

mktime

標準庫函式中 time.h 中的函式。

作用是,將時間轉換為自1970年1月1日以來持續時間的秒數,發生錯誤時返回-1。

基本介紹

  • 中文名:mktime
  • 表頭檔案:#include <time.h>
  • 相關函式:time,asctime,gmtime
  • 返回值:返回經過的秒數
mktime功能,相關函式,表頭檔案,定義函式,函式說明,返回值,範例,php中,定義,範例,

mktime功能

將時間轉換為自1970年1月1日以來逝去時間的秒數,發生錯誤時返回-1.

相關函式

time,asctime,gmtime,localtime

表頭檔案

#include <time.h>

定義函式

time_t mktime(struct tm * timeptr);

函式說明

mktime()用來將參數timeptr所指的tm結構數據轉換成從公元1970年1月1日0時0分0 秒算起至今的時間所經過的秒數。
mktime()轉換的時間帶有時區,linux版本使用tzset、windows版本使用setTimeZoneInformation設定時區。
轉換時不考慮tm結構的tm_wday和tm_yday,僅用tm_mday來決定日期。

返回值

返回經過的秒數。

範例

/* 用time()取得時間(秒數),利用localtime()
轉換成struct tm 再利用mktime()將struct tm轉換成原來的秒數*/
#include<stdio.h>#include<time.h>int main(void){    time_t timep;    struct tm* p;    time(&timep);    printf("time():%d\n",timep);    p=localtime(&timep);    timep=mktime(p);    printf("time()->localtime()->mktime():%d\n",timep);    return 0;}
在我的電腦上,此時運行所得的輸出為:
time():1270271767time()->localtime()->mktime()://1270271767
當然,你來運行這個例子的時候,結果肯定不一樣了,呵呵,除非你電腦時間沒調好。

php中

定義

mktime() 函式返回一個日期的 Unix時間戳
mktime(hour,minute,second,month,day,year,is_dst)
參數
描述
hour
可選。規定小時。
minute
可選。規定分鐘。
second
可選。規定秒。
month
可選。規定用數字表示的月。
day
可選。規定天。
year
可選。規定年。在某些系統上,合法值介於 1901 - 2038 之間。不過在 PHP 5 中已經不存在這個限制了。
is_dst
可選。如果時間在日光節約時間(DST)期間,則設定為1,否則設定為0,若未知,則設定為-1。
自 5.1.0 起,is_dst 參數被廢棄。因此應該使用新的時區處理特性。

範例

用Php判斷是否為閏年:
<?php$year=2010;$time=mktime(20,20,20,2,1,$year);//取得一個日期的Unix時間戳;if(date("t",$time)==29){//格式化時間,並且判斷2月是否是29天;echo$year."是閏年";//是29天就輸出時閏年;}else{echo$year."不是閏年";}?>
用Php求出生年齡:
<?php$year=mt_rand(1980,2010);//隨機給一個出生年;$birth=mktime(1,10,20,1,15,$year);//取得一個日期的Unix時間戳;$now=mktime();$age=intval(($now-$birth)/3600/24/365);//取得年齡;if($age>=20){echo$age."歲";echo"<br>"."<fontcolor=red>哎,老了,不中用了,^_^</font>";}else{echo$age."歲";echo"<br>"."<fontcolor=red>小P孩!O(∩_∩)O~</font>";}?>
計算每個月的最後一天
<?php$lastday=mktime(0,0,0,3,0,2000);echostrftime("LastdayinFeb2000is:%d",$lastday);$lastday=mktime(0,0,0,4,-31,2000);echostrftime("LastdayinFeb2000is:%d",$lastday);?>
年,月,日都等於零的日期被認為是非法的(否則會被當作 30.11.1999,這是很怪的行為)。

相關詞條

熱門詞條

聯絡我們