第 10 章 日期與時間

2021-09-12 03:18:02 字數 2848 閱讀 5533

學習要點:

1.php 日期和時間庫

使用 php 程式設計時,與你遇到的大多數其他型別的資料相比,日期和時間有很大不同。因為日期和時間沒有明確的結構,並且日期的計算和表示也很麻煩。在 php 中,日期和時間函式庫是 php 語言的乙個核心部分。

時間戳是自 1970 年 1 月 1 日(00:00:00 gmt)以來的秒數。它也被稱為 unix 時間戳(unix timestamp )。unix 時間戳(unix timestamp),或稱 unix 時間(unix time) 、posix 時間(posix time),是一種時間表示方式,定義為從格林威治時間 1970 年 01 月 01 日 00 時 00分 00 秒起至現在的總秒數。 unix 時間戳不僅被使用在 unix 系統、類unix 系統中,也在許多其他作業系統中被廣泛採用。例如(1184557366 表示 2007-07-16 03:42:46 )

一.php 日期和時間庫

驗證日期:checkdate() 函式能夠很好地驗證日期,提供的日期如果有效,則返回 true,否則返回 false。

<?php

if (checkdate( 2,29 ,2007)) else

?>

<?php

echo date('y-m-d h:i:sa'); // 直接輸入日期和時間

echo date('今天的日期和時間為:y/m/d h:i:sa'); //可以插入無關的字串

?>

<?php

print_r(gettimeofday()); //可以傳入乙個真(1)

?>

將時間戳轉換成友好的值:getdate()函式接受乙個時間戳,並返回乙個由其各部分組成的關聯陣列。如果不給引數,那麼返回當前的時間和日期。

<?php

print_r(getdate(1184557366));

?>

獲取當前的時間戳: time()函式可以獲取當前的時間戳,並且可以通過設定時間戳的值。

<?php

echo date('y-m-d h:i:s' ,time()+(7 * 24 * 60 * 60 ));

?>

獲取特定的時間戳:mktime()函式可以生成給定日期時間的時間戳。

<?php

echo mktime( 14, 14,14, 11,11 ,2007);

echo date('y-m-d h:i:s' ,mktime( 14 ,14,14 ,11, 11,2007));

?>

計算時間差

<?php

$now = time();

$taxday = mktime( 0, 0,0,7, 17,2010);

echo round(($taxday - $now )/60 /60);

?>

將日期轉換成時間戳:strtotime()將人可讀的日期轉換為 unix 時間戳。

<?php

echo strtotime( '2007-10-31 14:31:33');

?>

計算時間差

<?php

echo (strtotime('2007-10-31 14:31:33' ) - strtotime('2007-10-31 11:31:33'))/ 60 /60;

?>

<?php

echo date('y-m-d h:i:s' ,getlastmod());

?>

設定時區和 gmt/utc:

修改 php.ini 檔案中的設定,找到[date]下的;date.timezone = 選項,將該項修改為date.timezone=asia/shanghai,然後重新啟動 apache 伺服器。

putenv()函式可以設定當前的預設時區。

<?php

putenv('tz=asia/shanghai' );

echo date('y-m-d h:i:s' );

?>

date_default_timezone_set()可以設定當前的預設時區。

date_default_timezone_ get()可以獲取當前的預設時區。

<?php

date_default_timezone_set('asia/shanghai' );

echo date('y-m-d h:i:s' );

?>

取得本地時間 localtime () 函式可以取得本地時間資料,然後返回乙個陣列。

<?php

date_default_timezone_set('asia/shanghai' );

print_r(localtime());

print_r(localtime(time(), true));

?>

<?php

function fntime()

$start_time = fntime();

for ($i=0;$i<1000000 ;$i++)

$end_time = fntime();

echo round($end_time - $start_time,4 );

?>

第10章 函式

定義函式的格式 name command list 呼叫函式的格式 name 省略括號 檢視到所宣告的函式定義 declare f name 取消定義的函式,可以使用unset命令 unset name 案例 bin bash 定義函式printmsg用來輸出資訊到終端螢幕,該函式至少需要兩個引數 ...

CH10,日期與時間,

error reporting e all e notice header content type text html charset utf8 date default timezone set etc gmt 8 設定時區 當前為北京時區 if post submit true 獲取指定任意一...

第10章第8題

mylist.h ifndef mylist h define mylist h include const int len 10 class mylist endif void show double mid 這個函式用於簡單的顯示乙個double mylist.cxx include mylis...