PHP date() 函數可把時間戳格式化爲可讀性更好的日期和時間。php
<?php echo date("Y/m/d") . "<br>"; //返回2016/10/21 echo date("Y.m.d") . "<br>"; //返回2016.10.21 echo date("Y-m-d"); //返回2016-10-21 ?>
注意:帶着時分秒的格式是這樣的:$t=date("Y.m.d.H.i.s")html
調用這個函數之前,最好是先設定一下時區:date_default_timezone_set('Asia/Shanghai');(前面這句話直接加在開頭就行)前端
format 字符 |
說明 | 返回值例子 |
---|---|---|
日 | --- | --- |
d | 月份中的第幾天,有前導零的 2 位數字 | 01 到 31 |
D | 星期中的第幾天,文本表示,3 個字母 | Mon 到 Sun |
j | 月份中的第幾天,沒有前導零 | 1 到 31 |
l("L"的小寫字母) | 星期幾,完整的文本格式 | Sunday 到 Saturday |
N | ISO-8601 格式數字表示的星期中的第幾天(PHP 5.1.0 新加) | 1(表示星期一)到 7(表示星期天) |
S | 每個月天數後面的英文後綴,2 個字符 | st,nd,rd 或者 th。能夠和 j 一塊兒用 |
w | 星期中的第幾天,數字表示 | 0(表示星期天)到 6(表示星期六) |
z | 年份中的第幾天 | 0 到 365 |
星期 | --- | --- |
W | ISO-8601 格式年份中的第幾周,每週從星期一開始(PHP 4.1.0 新加的) | 例如:42(當年的第 42 周) |
月 | --- | --- |
F | 月份,完整的文本格式,例如 January 或者 March | January 到 December |
m | 數字表示的月份,有前導零 | 01 到 12 |
M | 三個字母縮寫表示的月份 | Jan 到 Dec |
n | 數字表示的月份,沒有前導零 | 1 到 12 |
t | 給定月份所應有的天數 | 28 到 31 |
年 | --- | --- |
L | 是否爲閏年 | 若是是閏年爲 1,不然爲 0 |
o | ISO-8601 格式年份數字。這和 Y 的值相同,只除了若是 ISO 的星期數(W)屬於前一年或下一年,則用那一年。(PHP 5.1.0 新加) | Examples: 1999 or 2003 |
Y | 4 位數字完整表示的年份 | 例如:1999 或 2003 |
y | 2 位數字表示的年份 | 例如:99 或 03 |
時間 | --- | --- |
a | 小寫的上午和下午值 | am 或 pm |
A | 大寫的上午和下午值 | AM 或 PM |
B | Swatch Internet 標準時 | 000 到 999 |
g | 小時,12 小時格式,沒有前導零 | 1 到 12 |
G | 小時,24 小時格式,沒有前導零 | 0 到 23 |
h | 小時,12 小時格式,有前導零 | 01 到 12 |
H | 小時,24 小時格式,有前導零 | 00 到 23 |
i | 有前導零的分鐘數 | 00 到 59> |
s | 秒數,有前導零 | 00 到 59> |
u | 毫秒 (PHP 5.2.2 新加)。須要注意的是 date() 函數老是返回 000000 由於它只接受 integer 參數, 而 DateTime::format() 才支持毫秒。 | 示例: 654321 |
時區 | --- | --- |
e | 時區標識(PHP 5.1.0 新加) | 例如:UTC,GMT,Atlantic/Azores |
I | 是否爲夏令時 | 若是是夏令時爲 1,不然爲 0 |
O | 與格林威治時間相差的小時數 | 例如:+0200 |
P | 與格林威治時間(GMT)的差異,小時和分鐘之間有冒號分隔(PHP 5.1.3 新加) | 例如:+02:00 |
T | 本機所在的時區 | 例如:EST,MDT(【譯者注】在 Windows 下爲完整文本格式,例如"Eastern Standard Time",中文版會顯示"中國標準時間")。 |
Z | 時差偏移量的秒數。UTC 西邊的時區偏移量老是負的,UTC 東邊的時區偏移量老是正的。 | -43200 到 43200 |
完整的日期/時間 | --- | --- |
c | ISO 8601 格式的日期(PHP 5 新加) | 2004-02-12T15:19:21+00:00 |
r | RFC 822 格式的日期 | 例如:Thu, 21 Dec 2000 16:01:07 +0200 |
U | 從 Unix 紀元(January 1 1970 00:00:00 GMT)開始至今的秒數 | 參見 time() |
打開文件:mysql
<?php $file=fopen("filename.txt","r"); ?>
文件打開模式詳情見下表:sql
模式 | 描述 |
---|---|
r | 只讀。在文件的開頭開始。 |
r+ | 讀/寫。在文件的開頭開始。 |
w | 只寫。打開並清空文件的內容;若是文件不存在,則建立新文件。 |
w+ | 讀/寫。打開並清空文件的內容;若是文件不存在,則建立新文件。 |
a | 追加。打開並向文件末尾進行寫操做,若是文件不存在,則建立新文件。 |
a+ | 讀/追加。經過向文件末尾寫內容,來保持文件內容。 |
x | 只寫。建立新文件。若是文件已存在,則返回 FALSE 和一個錯誤。 |
x+ | 讀/寫。建立新文件。若是文件已存在,則返回 FALSE 和一個錯誤。 |
關閉文件:fclose($filename);數據庫
檢測是否到達文件末尾:數組
if (feof($filename)) echo "文件結尾";
逐行讀取文件:瀏覽器
<?php $file = fopen("welcome.txt", "r") or exit("沒法打開文件!"); // 讀取文件每一行,直到文件結尾 while(!feof($file)) //若是沒有到達文件末尾 { echo fgets($file). "<br>"; //就逐行讀取文件 } fclose($file); //到了末尾就關閉 ?>
逐字讀取文件:編輯器
<?php $file=fopen("welcome.txt","r") or exit("沒法打開文件!"); while (!feof($file)) { echo fgetc($file); //注意,fgetc()函數,這是逐字讀取。 } fclose($file); ?>
拓展:php讀取文件的五種方法:函數
第一種:
<?php $file_path = "test.txt"; if(file_exists($file_path)){ $fp = fopen($file_path,"r"); $str = fread($fp,filesize($file_path));//指定讀取大小,這裏把整個文件內容讀取出來 echo $str = str_replace("\r\n","<br />",$str); } ?>
第二種
<?php $file_path = "test.txt"; if(file_exists($file_path)){ $str = file_get_contents($file_path);//將整個文件內容讀入到一個字符串中 $str = str_replace("\r\n","<br />",$str); echo $str; } ?>
第三種
<?php $file_path = "test.txt"; if(file_exists($file_path)){ $fp = fopen($file_path,"r"); $str = ""; $buffer = 1024;//每次讀取 1024 字節 while(!feof($fp)){//循環讀取,直至讀取完整個文件 $str .= fread($fp,$buffer); } $str = str_replace("\r\n","<br />",$str); echo $str; } ?>
第四種:
<?php $file_path = "test.txt"; if(file_exists($file_path)){ $file_arr = file($file_path); for($i=0;$i<count($file_arr);$i++){//逐行讀取文件內容 echo $file_arr[$i]."<br />"; } /* foreach($file_arr as $value){ echo $value."<br />"; }*/ } ?>
第五種:比較推薦用這個。
<?php $file_path = "test.txt"; if(file_exists($file_path)){ $fp = fopen($file_path,"r"); $str =""; while(!feof($fp)){ $str .= fgets($fp);//逐行讀取。若是fgets不寫length參數,默認是讀取1k。 } $str = str_replace("\r\n","<br />",$str); echo $str; } ?>
t1.php文件:做用在於把當前時間寫到txt文檔中,而後一行一行讀取,讀到的信息加工一下,展現出來。
<?php function wgTime() { date_default_timezone_set('Asia/Shanghai'); $t=date("Y.m.d.H.i.s")."\n"; //var_dump($t); $file=fopen("t1.txt","a"); fwrite($file,$t); fclose($file); $file="t1.txt"; if(file_exists($file)){ $file_arr=file($file); //行讀取 for ($i=0;$i<count($file_arr);$i++){ $str=explode(".",$file_arr[$i]); $dw=array("Y ","M ","D ","H ","I ","S "); for ($j=0;$j<6;$j++){ //echo $j."序號"."<br>"; echo $str[$j],$dw[$j]; } echo "<br>"; } } } //wgTime(); 由於調用的時候會直接執行,因此要註釋掉纔好調用 ?>
在daqing.php文件中若是想要調用t1.php的方法,能夠這樣:
<?php require_once "t1.php"; //表示調用一次 wgTime(); ?>
補充:die() 函數輸出一條消息,並退出當前腳本。該函數是 exit() 函數的別名。
$rowcount=mysqli_num_rows($result),mysqli_num_rows()函數返回記錄數。
mysqli_fetch_assoc()是一個讀取數據庫數據的函數,它會一行一行地讀取,而且把讀到的數據轉化成數組,數組的鍵是數據庫的列名,值是具體的數。好比,讀取id 和currtime,id=1,currtime=2018.09.05.12.12.12,這個函數就會生成這樣的數組:'currtime' => '2018.09.05.10.58.06 'id'=>1。
鏈接數據庫:
//mysqli-面向對象 <?php $servername="localhost"; $username="xxx"; $password="xxx"; $conn=new mysqli($servername,$username,$password); if ($conn->connect_error) { die("鏈接失敗: " . $conn->connect_error); } echo "鏈接成功"; ?>
//mysqli-面向過程 <?php $servername = "localhost"; $username = "username"; $password = "password"; $conn = mysqli_connect($servername, $username, $password); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "鏈接成功"; ?>
我的比較傾向於面向過程的這種方法,由於特殊符號比較少。
建立數據表:
<?php $servername = "localhost"; $username = "xxx"; $password = "xxx"; $dbname="daqingdb"; //在這裏能夠直接加入datebase參數。 $conn = mysqli_connect($servername, $username, $password,$dbname); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "鏈接成功 <br>"; $sql="create table wgtime (`id` int(4) unsigned auto_increment primary key,time varchar(20) not null)"; if (mysqli_query($conn,$sql)){ echo "建立table:wgTime 成功!<br>"; }else{ echo "建立表error".mysqli.error($conn); } mysqli_close($conn); echo "exitd!"; ?>
把時間寫入數據庫,而且讀取出來:
<?php date_default_timezone_set('Asia/Shanghai'); $t=date("Y.m.d.H.i.s")."\n"; $servername = "localhost"; $username = "xxx"; $password = "xxx"; $dbname="daqingdb"; //在這裏能夠直接加入datebase參數。 $conn = mysqli_connect($servername, $username, $password,$dbname); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "鏈接成功 <br>"; // $sql="create table wgtime (`id` int(4) unsigned auto_increment primary key,currtime varchar(30) not null)"; // if (mysqli_query($conn,$sql)){ // echo "建立table:wgTime 成功!<br>"; // }else{ // echo "建立表error".mysqli.error($conn); // } $sql1="INSERT INTO `wgtime`(`currtime`) VALUES ('$t')"; //$t要用單引號代表 if (mysqli_query($conn,$sql1)){ echo "新紀錄插入成功 <br>"; }else{ echo "error:".mysqli_error($conn); //打印出mysql返回的錯誤 } //$sql2="select * from `wgtime`"; $sql2="select `currtime` from `wgtime`"; $result=mysqli_query($conn,$sql2); //var_dump($result); $result居然是個object對象類!其方法或者屬性有:current_field,field_count,lengths,num_rows,type. if (mysqli_num_rows($result)>0){ //mysqli_num_rows($result)返回數據庫中查詢到的記錄的行數 echo "查詢成功<br>"; while ($row=mysqli_fetch_assoc($result)){ //var_dump($row); 這是一個數組,相似於字典吧。 $dw=array("Y ","M ","D ","H ","I ","S "); $str=explode(".",$row["currtime"]); for($i=1;$i<6;$i++){ echo $str[$i],$dw[$i]; } echo "<br>"; } }else{ echo "error:".mysqli_error($conn); } mysqli_close($conn); echo "exitd!"; ?>
補充:
file_exists()判斷文件或者文件夾是否存在,返回布爾值
$list=scandir($dirpath)讀取$dirpath表明的位置的下面的文件。
chdir(path)改變當前文件位置到指定地方,約等於文件夾的指針。
<?php function dirBuilder($d,$t,$note) //參數分別是:文件夾名,文件名,文件內容 { // date_default_timezone_set('Asia/Shanghai'); //也能夠不用參數,改用時間 // $d=date("Y年m月d日"); // $t=date("H時i分s秒"); // $note="hello"; $dirpath="C:/xampp/htdocs/daqing_new/dir_test/$d"; //判斷文件夾是否存在,不存在就建立 if (!file_exists($dirpath)){ mkdir($dirpath,0777,true); //echo "新建文件夾<br>"; } chdir($dirpath); //echo "改變當前文件夾<br>"; if (file_exists("C:/xampp/htdocs/daqing_new/dir_test/$d/$t.txt")){ //判斷是否有同名文件 echo "文件已經存在,沒有建立新的<br>"; }else{ //echo "文件不存在,新建<br>"; $myfile=fopen("$t.txt",'w'); fwrite($myfile,$note); fclose($myfile); } $list=scandir($dirpath); //讀取文件夾下的文件目錄 var_dump($list); //$list是一個數組,帶着文件名和length,不能直接打印 for($i=2;$i<count($list);$i++){ echo "$list[$i] <br>"; } } dirBuilder('123',"345","hello i am daqing"); ?>
第一種方法:單雙引號包圍法
<?php echo ' <!DOCTYPE html> <html> <head> <title> </title> </head> <body> <span>測試頁面</span> </body> </html> '; ?>
//返回:測試頁面
單雙引號的方法是同樣的,可是單雙引號有區別,單引號不會解析內部的變量,雙引號支持變量的解析。
缺點在於:
輸出的內容中包含引號的話很差處理;編輯器很差提醒引號內部的格式錯誤。
第二種,使用EOF標識,這種方法支持變量解析
<?php $content='hello';echo <<<EOF ‘$content’ EOF ?>
//返回:'hello',證實這種方法支持單雙引號的使用
第三種,html中嵌入php程序塊
基本思想:提早定義好函數或者方法,而後在須要輸出的地方寫上代碼就能夠了。
<?php function test(){ echo "function test! <br>"; } ?> //方法或者函數須要寫在<?php ?>中,下文的輸出也要寫在這樣的格式中 <!DOCTYPE html> //html語句不須要寫在<?php ?>中,php會理解的。 <html> <head> <title><?php test();?> </title> </head> <body> <span><?php test();echo 'lala';?></span> </body> </html> //輸出:function test! <br> lala
第四種,使用前端模板引擎
好比,咱們可使用Smarty,固然了,目前並不能理解。
相關技術的關係:
HTML展現內容
PHP動態修改輸出HTML展現內容
CSS美化頁面
JS讓頁面動起來。提升瀏覽體驗。
製做一個鍵:
<html>
<head>
<meta charset="utf-8"> //在標題裏,定義了網頁的元信息,好比編碼方式charset
<title> //title標籤,會顯示在瀏覽器窗口的頭上
大晴測試
</title>
</head>
<body>
<button name= "logup" type = "submit" >呵呵</button> //button中定義的是這個按鍵的屬性
</body>
</html>