第一篇:PHP中時間和日期函數總結
PHP中時間和日期函數總結
2007-11-29 00:40:28 標簽:php 時間 日期函數
PHP中所有函數都是UNIX紀元的,即從1970年1月1日開始的。日期是從這個時候開始的秒數。當一個函數調用從這時候計的秒數時,就把它當作(timestamp)時間戳。本地時間函數
1.string date(string format,inieger timestamp)該函數返回一個表示時間的字符串,是由string format 控制的。如: print(date(“Y年 m月d日”);//輸出當前,年月日.print(date(“Y年 m月d日”,60*60*24*365*10);//輸出1980年1月1日.?> 也許你會問,怎麼沒有timestamp呢?若timestamp為空時,或不寫時,表示使用當前時間一刻timestamp.表示年份的控制符: Y---四位的年份 y---兩位的年份
表示月份的控制符: m---從1-12的月份 F---英文月份名 M---簡寫的月份名 表示日號的控制符: d---前面有0的月份中日期 j--前面沒有0的日號 表示星期的控制符: l--英文星期 D--簡寫的星期
表示小時的控制符: h--從1到12小時 H---從0到23的小時 表示上下午的控制符 a---am或pm A---AM或PM 表示分鐘的控制符: i---取值00-59 表示一年中第多少天: z--一年中的第多少天 2.array getdate(integer timestamp)該函數返回一個矩陣.如: $current_date=getdate();print($current_date(“hours”));print($current_date(“minutes”);print($current_date(“seconds”);?> 說明: 元素 描述
hours 24小時格式的小時 mday 月份中日期 minutes 分鐘
mon 數字形式的月份 month 月份全稱 seconds 秒數
wday 從0到6的數字形式的星期幾 weekday 星期幾的名稱 year 年份
0 時間戳即從1970年1月1日到現在的秒數 yday 一年中數字形式的日期
3.boolean checkdate(integer month,integer day,integer year)該函數檢查日期是否合法.如: if(checkdate(2,29,1980))print(“日期合法!n”);?> 4.integer time()該函數獲得當前時間戳.如: print(time());//輸出一大串整數 ?> 5.integer mktime(integer hour,integer minutes,integer seconds,integer month, integer day,integer year)該函數返回給出日期的時間戳,即從1970年1月1日到現在的秒數.如某參數超出范圍,該函數也可以解釋它,如13月即為第二年的一月.如: $currenthour=date(“H”);print(“50個小時后為:”);print(date(“h:i A l F dS,Y”,mktime($currenthour+50)));print(“
n”);?> 6.string microtime()該函數返回一個字符串,由當前時間的毫秒數+空格+從1970年開始的秒數 print(“start:microtime()
n”);for($index=0;$index<1000;$index++)print(“good!”);print(“stop:microtime()
n”);?> 還有,各林威治標準時間函數
第二篇:php開發中常用函數總結
php開發中常用函數總結
1.獲取IP2.時間的增加3.檢查日期是否合法日期4.時間比較函數,返回兩個日期相差幾秒、幾分鐘、幾小時或幾天5.PHP重定向6.獲取訪問者瀏覽器7.獲取訪問者操作系統8.文件格式類9.php生成excel文檔10.時間比較問題11.提取頁面和瀏覽器提交的變量,作用相當于使PHP.INI開了全局變量12.讀取文件函數13.寫入文件函數14.頁面快速轉向15.產生隨機字符串函數16.截取一定長度的字符串(該函數對GB2312使用有效)17.取得客戶端IP地址18.判斷郵箱地址19.分頁(兩個函數配合使用)20.獲取新插入數據的ID21.獲得當前的腳本網址22.把全角數字轉為半角數字23.去除HTML標記24.相對路徑轉化成絕對路徑26.取得所有鏈接27.HTML表格的每行轉為CSV格式數組28.將HTML表格的每行每列轉為數組,采集表格數據29.返回字符串中的所有單詞 $distinct=true 去除重復30.打印出為本PHP項目做出貢獻的人員的清單
function GetIP(){ //獲取IP
if($_SERVER[“HTTP_X_FORWARDED_FOR”])
$ip = $_SERVER[“HTTP_X_FORWARDED_FOR”];
else if($_SERVER[“HTTP_CLIENT_IP”])
$ip = $_SERVER[“HTTP_CLIENT_IP”];
else if($_SERVER[“REMOTE_ADDR”])
$ip = $_SERVER[“REMOTE_ADDR”];
else if(getenv(“HTTP_X_FORWARDED_FOR”))
$ip = getenv(“HTTP_X_FORWARDED_FOR”);
else if(getenv(“HTTP_CLIENT_IP”))
$ip = getenv(“HTTP_CLIENT_IP”);
else if(getenv(“REMOTE_ADDR”))
$ip = getenv(“REMOTE_ADDR”);
else
$ip = “Unknown”;
return $ip;}?>{downsource}
$dateArr = explode(“-”, $date);$value[$unit] = $int;return date(“Y-m-d”, mktime(0,0,0, $dateArr[1] + $value['m'], $dateArr[2] + $value['d'], $dateArr[0] + $value['y']));}function GetWeekDay($date){ //計算出給出的日期是星期幾
$dateArr = explode(“-”, $date);return date(“w”, mktime(0,0,0,$dateArr[1],$dateArr[2],$dateArr[0]));}?>{downsource}
$dateArr = explode(“-”, $date);if(is_numeric($dateArr[0])&& is_numeric($dateArr[1])&& is_numeric($dateArr[2])){ return checkdate($dateArr[1],$dateArr[2],$dateArr[0]);} return false;}function check_time($time){ //檢查時間是否合法時間
$timeArr = explode(“:”, $time);if(is_numeric($timeArr[0])&& is_numeric($timeArr[1])&& is_numeric($timeArr[2])){ if(($timeArr[0] >= 0 && $timeArr[0] <= 23)&&($timeArr[1] >= 0 && $timeArr[1] <= 59)&&($timeArr[2] >= 0 && $timeArr[2] <= 59))return true;else return false;} return false;}function DateDiff($date1, $date2, $unit = “"){ //時間比較函數,返回兩個日期相差幾秒、幾分鐘、幾小時或幾天
switch($unit){ case 's': $dividend = 1;break;case 'i': $dividend = 60;break;case 'h': $dividend = 3600;break;case 'd': $dividend = 86400;break;default: $dividend = 86400;} $time1 = strtotime($date1);$time2 = strtotime($date2);if($time1 && $time2)return(float)($time11;mt_srand((double)microtime()* 1000000);for($i = 0;$i < $length;$i++){ $hash.= $chars[mt_rand(0, $max)];}return $hash;}?>{downsource}截取一定長度的字符串(該函數對GB2312使用有效) $length){ if($sss){ $length=$length-3;$addstr=@#...@#;} for($i = 0;$i < $length;$i++){ if(ord($string[$i])> 127){ $wordscut.= $string[$i].$string[$i + 1];$i++;} else { $wordscut.= $string[$i];} } return $wordscut.$addstr;}return $string;}?>{downsource}取得客戶端IP地址{downsource}判斷郵箱地址{downsource}分頁(兩個函數配合使用)
global $page,$totalpage;$out=”共“.$totalpage.”頁 “;$linkNum =4;$start =($page-round($linkNum/2))>0 ?($page-round($linkNum/2)): ”1“;$end =($page+round($linkNum/2))<$totalpage ?($page+round($linkNum/2)): $totalpage;$prestart=$start-1;$nextend=$end+1;if($page<>1)$out.= ”第一頁 “;if($start>1)$out.=”..<< “;for($t=$start;$t<=$end;$t++){ $out.=($page==$t)? ”[“.$t.”] “ : ”$t “;}if($end<$totalpage)$out.=”>>..“;if($page<>$totalpage)$out.= ” 最后頁“;return $out;}?>{downsource}獲取新插入數據的ID{downsource}//獲得當前的腳本網址
if(empty($_SERVER[”QUERY_STRING“]))$nowurl = $scriptName;else $nowurl = $scriptName.”?“.$_SERVER[”QUERY_STRING“];} return $nowurl;}?>{downsource}//把全角數字轉為半角數字{downsource}//去除HTML標記“,”>“,$txt);$txt = preg_replace(”/[rn]{1,}/isU“,”rn“,$txt);return $txt;}?>{downsource}//相對路徑轉化成絕對路徑
preg_match('/(http|https|ftp):///', $feed_url, $protocol);$server_url = preg_replace(”/(http|https|ftp|news):///“, ”“, $feed_url);
$server_url = preg_replace(”//.*/“, ”“, $server_url);
if($server_url == ''){
return $content;
}
if(isset($protocol[0])){
$new_content = preg_replace('/href=”//', 'href=“'.$protocol[0].$server_url.'/', $content);
$new_content = preg_replace('/src=”//', 'src=“'.$protocol[0].$server_url.'/', $new_content);
} else {
$new_content = $content;
}
return $new_content;} ?>{downsource}//取得所有鏈接
preg_match_all('/
return array('name'=>$arr[2],'url'=>$arr[1]);}?>{downsource}//HTML表格的每行轉為CSV格式數組]*?>'si”,'“',$table);$table = str_replace(”“,'”,',$table);$table = str_replace(“”,“{tr}”,$table);//去掉 HTML 標記
$table = preg_replace(“'<[/!]*?[^<>]*?>'si”,“",$table);//去掉空白字符
$table = preg_replace(”'([rn])[s]+'“,”“,$table);$table = str_replace(” “,”“,$table);$table = str_replace(” “,”“,$table);$table = explode(”,{tr}“,$table);
array_pop($table);return $table;}?>{downsource}//將HTML表格的每行每列轉為數組,采集表格數據]*?>'si“,”“,$table);$table = preg_replace(”'
$table = preg_replace(”'<[/!]*?[^<>]*?>'si“,”“,$table);//去掉空白字符
$table = preg_replace(”'([rn])[s]+'“,”“,$table);$table = str_replace(” “,”“,$table);$table = str_replace(” “,”“,$table);
$table = explode('{tr}', $table);
array_pop($table);foreach($table as $key=>$tr){ $td = explode('{td}', $tr);array_pop($td);$td_array[] = $td;} return $td_array;}?>{downsource}//返回字符串中的所有單詞 $distinct=true 去除重復{downsource}//打印出為本PHP項目做出貢獻的人員的清單 //生成隨機密碼function randStr($len=6){//用來產生密碼的字符串$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789';$password=”";while(strlen($password)<$len)
$password.=substr($chars,(mt_rand()%strlen($chars)),1);return $password;
}
第三篇:R函數總結系列之一日期函數
R函數總結系列之一日期函數
? 返回當前日期時間,有兩種方式:
1.Sys.time()
2.date()(常用)
僅返回當前日期,使用函數Sys.Date()。
轉換日期變量格式,有多種方式: ? ?
?
as.Date():此函數有多種使用方式。其一,類似于函數format()和as.character(),返回給定的日期參數的特定格式,如as.Date(Sys.Date())的返回結果為“2011-08-09”。其
二、形式as.Date(x,origin)返回自參數origin(參數值為一日期)起第x天。如as.Date(2, origin=“2011-08-09”)的返回結果為“2011-08-11”。
format():如命令format(Sys.Date(), “%Y-%m-%d %w”)的返回結果為“2011-08-09 2”,其中2表示2011年8月9日為周二;若不指定返回的格式,則函數format()默認按照格式“%Y-%m-%d”返回,也就是說format(Sys.Date())和format(Sys.Date(), “%Y-%m-%d”)的返回結果是相同的。as.character(),其使用方法同format()相同。
?
?
?
? 返回特定日期所對應的weekday、月份、季度,分別使用函數weekdays()、months()、quarters()。求兩個日期之間的差,可通過函數julian或者diff.Date()實現。如求2011-09-10和2011-08-09兩天之間相隔的天數,可以通過julian(as.Date(“2011-09-10”),origin=as.Date(“2011-08-09”))[[1]]來求得。生成時間序列向量,也有多種方式:
使用函數as.Date()。如as.Date(1:20, origin=“2011-08-09”)。
使用函數seq()。和seq()的一般使用方式的區別在于,梯度可以是“day”, “week”, “month” 或者“year”,甚至是“3 months”等。如seq(as.Date(“2000/1/1”), by=“month”, length.out=3)的返回結果為 “2000-01-01” “2000-02-01” “2000-03-01”;函數seq(as.Date(“2000/1/1”), as.Date(“2003/1/1”), by=“6 months”)的返回結果為 “2000-01-01” “2000-07-01” “2001-01-01” “2001-07-01” “2002-01-01” “2002-07-01” “2003-01-01”。? 繪制圖形,使用plot()即可。plot(x,y),其中參數x為日期時間類型的對象,y是與x相對應的數值。
第四篇:工程款支付中的關于日期時間
工程款支付中的關于日期時間 工程預款支付的時間:分包方應在簽訂合同后的一個月內或約定的開工日期前的7天內預付工程款。若承包人未在規定期間內支付,承包人應在預付時間期限到期后10天內向發包人發出要求預付的通知,發包人在收到通知后仍不按要求預付,承包人在發出通知14天后停止施工,發包人應從約定付款之日起按同期銀行貸款利率計算向承包人支付應付預付款的利息,并承擔違約責任。支付工程進度款的時間:承包人提交已完工程量報告,發包人應在接到報告后7天內按施工圖紙(含設計變更)核對已完成工程量,并在計量前24小時通知承包人,承包人應提供條件并按時參加,承包人不同意發包人核實的工程量結果的,承包人應該在收到上述結果后7天內向發包人提出,發包人2天內重新審核。發包人應在收到承包人的工程款支付申請后14天內(FIDIC是28天內)核對完畢,否則,從第15天起承包人遞交的工程款支付申請視為被批準,發包人應在批準工程款支付申請的14天內支付相應的工程款.(60%,90%).索賠的時間問題:發包人在確認 工程竣工結算:合同(P123)招投標的 延期開工: 工期暫停: 工期順延:關于驗收的
第五篇:如何在excel中設置日期時間格式
excel中日期時間格式轉換問題
1.2009/05/15如何轉換為20090515這種數字格式。
2.23:03:00如何轉換為230300這種數字格式。
謝謝。
2009/05/15 如何轉換為 20090515這種數字格式
先選中該列或該單元格,鼠標右擊,“設置單元格格式”,“數字”,“自定義”,在類型處輸入
yyyymmdd
確定
23:03:00 如何轉換為 230300這種數字格式。
先選中該列或該單元格,鼠標右擊,“設置單元格格式”,“數字”,“自定義”,在類型處輸入
hhmmss
確定
在excel列中設置好了日期的格式yyyy-m,為何輸入的是20049,卻變成1956-10-而且這列中的每行都是這樣?
1, 你輸入的20049本身不是日期格式,你應該輸入2004/09/01 那么,顯示為:2004-9 2,你設置為特殊格式0000-00,你輸入時輸入:200409將會顯示為:2004-09(月份考慮2位)
如何在excel中設置日期格式
比如:一列的數據是2008.04.29,令一列是2008.05.29,我想求兩個日期的天數,但在設置日期格式為2008-4-29時沒有反應,是不是這種格式的時間不能設置成日期的格式啊?
2008-4-9
2008-5-9
然后選擇設置單元格格式-數字-日期-示例里面選擇你需要顯示日期的格式 如何設置excel中的日期格式
右鍵---設置單元格式---數字---自定義---類型中將“yyyy-m-d”修改為“yyyymmdd”,確定。
如何在excel表格中的某一單元格設置日期格式.如果輸入的不是日期格式就會出錯
選中你要設的范圍后,按上述步驟操作即可,當你在這輸入 一個超出的日期或其他類型的值就會有以下提示
選中該項列,點“數據”——“有效性”——
日期根據自己的需要更改,——“確定”。輸入數據后,效果如圖:
Excel表格,在一個單元格中需要換行怎么辦?
可以用界面上的自動換行
或者單元格屬性(下圖)
或者用ALT+ENTER強制換行
如何鎖定Excel表格中的部份單元格?
如何鎖定Excel表格中的部份單元格?讓其他人不能修改這張表格中被鎖定的單元格。方法如下:
先選中希望別人填寫或修改的部分,然后鼠標右鍵:
設置單元格格式----保護--把鎖定前面的對號清除--確定
然后選 工具--保護--保護工作表(密碼自己掌握,怕忘就空)--確定
OK了 答案補充 你先在要設置鎖定的單元格屬性中設置,“單元格格式”——“保護”——“鎖定”,然后把開放的單元格屬性中的“鎖定”取消。然后點菜單“工具”——“保護”——“保護工作表”——“保護工作表及鎖定的單元格內容”,將“允許次工作表的所有用戶進行”下面的復選框除“選定鎖定單元格”外的全部打勾就可以了,你還可以設定一個保護密碼。
Excel表格,在一個單元格中需要換行怎么辦?
可以用界面上的自動換行
或者單元格屬性(下圖)
或者用ALT+ENTER強制換行