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