簡(jiǎn)單談?wù)凱HP vs Node.js
網(wǎng)絡(luò)正在處于一個(gè)日新月異的發(fā)展時(shí)代。服務(wù)器端開(kāi)發(fā)人員在選擇語(yǔ)言的時(shí)候非常困惑,有長(zhǎng)期占主導(dǎo)地位的語(yǔ)言,例如C、Java和Perl,也有專(zhuān)注于web開(kāi)發(fā)的語(yǔ)言,例如Ruby、Clojure和Go。只要你的項(xiàng)目運(yùn)行良好,你的選擇就顯得沒(méi)有那么重要了。

但是如何讓這些新的web開(kāi)發(fā)人員做出一個(gè)正確的選擇呢?
我不希望展開(kāi)一場(chǎng)PHP、NodeJs兩大陣營(yíng)之間的戰(zhàn)爭(zhēng),我將會(huì)對(duì)比這兩種語(yǔ)言所在領(lǐng)域的發(fā)展?fàn)顩r:
PHP
Rasmus Lerdorf在1994年創(chuàng)造出了PHP。它是由安裝在web服務(wù)器(Apache、Ngix)上的組件運(yùn)行的。
PHP代碼可以和HTML混合到一塊。 對(duì)于初學(xué)者就能很快寫(xiě)出很有價(jià)值的代碼,這并不需要太多的練習(xí)。 這讓PHP變得越來(lái)越流行, 現(xiàn)在全球百分之八十的服務(wù)器上都在運(yùn)行著PHP。全球四分之一的網(wǎng)站都在用的一個(gè)內(nèi)容管理系統(tǒng)--WordPress,就是用PHP寫(xiě)的。
Node.js
Ryan Dahl在2009年創(chuàng)造了Node.js。它是基于Google的V8 JavaScript解釋引擎(在Chrome瀏覽器里它負(fù)責(zé)執(zhí)行客戶(hù)端的JavaScript代碼)。與其它語(yǔ)言不同的是Node.js內(nèi)置了處理網(wǎng)絡(luò)請(qǐng)求和響應(yīng)的函數(shù)庫(kù),所以你不需要單獨(dú)的服務(wù)器(Apache、Ngix)或者其他依賴(lài)。
Node.js雖然很新但是很快就獲得了極大的追捧。在很多的大公司都有在使用,例如:Microsoft,Yahoo,LinkedIn和PayPal。
我們所鐘愛(ài)的C#、Java、Ruby、Python、Perl、Erlang、C++、Go、Dart、Scala、Haskell等等,它們呢?
如果文章里邊比較了如上所有語(yǔ)言的各種參數(shù),文章將會(huì)非常長(zhǎng),你還會(huì)讀它么?你期望一個(gè)程序員了解所有的程序開(kāi)發(fā)語(yǔ)言嗎?這顯然是不可能的。我主要對(duì)PHP和Node.js做了比較,主要原因如下:
首先它們之間值得比較。兩者都是開(kāi)放源碼,都是致力于web開(kāi)發(fā),并且都可用于相似的項(xiàng)目。
PHP已經(jīng)發(fā)布了很久了,但是Node.js才剛剛興起,并受到越來(lái)越多的關(guān)注。難道PHP的程序員應(yīng)該相信Node.js的宣傳?應(yīng)該考慮轉(zhuǎn)換語(yǔ)言?
我了解,熱愛(ài)編程語(yǔ)言,自從20世紀(jì)90年代之后我就一直使用PHP和JavaScript,并且也有幾年的Node.js的經(jīng)驗(yàn)。除此之外我也涉獵了其他的技術(shù),但是在這里我還不能對(duì)他們作出客觀評(píng)價(jià)。
另外,對(duì)多少語(yǔ)言做比較不重要,因?yàn)榭倳?huì)有某些地方的某些人抱怨我沒(méi)有提到他們語(yǔ)言。
SitePoint上的角逐
程序員會(huì)花費(fèi)很多時(shí)間來(lái)提升他們自己的編程能力。一些人有編程語(yǔ)言之間的延伸能力,但是這些達(dá)到更高層次的人根據(jù)很多的因素來(lái)做出他們自己的選擇。從主觀方面來(lái)說(shuō),你將會(huì)推進(jìn)并且捍衛(wèi)你的技術(shù)決策。
SitePoint Smackdowns并沒(méi)有采取“選擇適合你自己的,朋友”這樣的觀點(diǎn)。我將會(huì)根據(jù)個(gè)人的經(jīng)驗(yàn)、要求和喜好提出建議。你可能不會(huì)同意所有的我所說(shuō)的所有觀點(diǎn),這并不重要,重要的是你的意見(jiàn)將會(huì)給其他人做出更加明智的選擇。
評(píng)估方法
下面將會(huì)對(duì) PHP 和 Node.js 進(jìn)行十個(gè)輪次的比較。每個(gè)回合都會(huì)考量可以應(yīng)用到任意 web 技術(shù)的常見(jiàn)的開(kāi)發(fā)挑戰(zhàn)。我們不會(huì)太深入討論細(xì)節(jié);很少有人會(huì)關(guān)心隨機(jī)數(shù)生成器或數(shù)組排序的價(jià)值。
贏得最多回合的將會(huì)是優(yōu)勝者。準(zhǔn)備好了嗎?開(kāi)始較量吧。。。。。。
第一輪:起步
創(chuàng)建一個(gè)“Hello World” web 頁(yè)面有多快呢?在 PHP 中:
<?php echo 'Hello World!'; ?>
這段代碼可以放置在可以被 PHP 引擎解析的任意文件中--通常,是以 .php 為后綴的文件。在瀏覽器中輸入 URL 跳轉(zhuǎn)到文件即可。
不可否認(rèn),這不是全部。這段代碼只能運(yùn)行于安裝了 PHP 的 web 服務(wù)器(PHP 有一個(gè)內(nèi)置的服務(wù)器,盡管如此,最好還是使用一個(gè)更健壯的服務(wù)器)。大多數(shù)操作系統(tǒng)提供了服務(wù)器軟件,如 windows 上的 IIS,Mac 和 Linux 上的 Apache,盡管它們需要啟動(dòng)和配置。通常使用提前構(gòu)建的安裝程序,如 XAMPP或虛擬機(jī)鏡像(如 Vagrant)。一種更簡(jiǎn)單的方式:上傳你的文件到任意的 web 主機(jī)。
對(duì)比而言,安裝 Node.js 輕而易舉。你可以 下載安裝程序 或者 使用包管理器。 接下來(lái)讓我們?cè)?hello.js 中創(chuàng)建 web 頁(yè)面:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World!');
}).listen(3000, '127.0.0.1');
在瀏覽器中訪問(wèn) http://127.0.0.1:3000/ 之前,你需要在終端輸入 node hello.js 來(lái)啟動(dòng)應(yīng)用程序 。通過(guò)上面的五行代碼,我們已經(jīng)創(chuàng)建了一個(gè)小型的 web 服務(wù)器,盡管這很令人吃驚,但是即便擁有很強(qiáng)客戶(hù)端 JavaScript 經(jīng)驗(yàn)的人也很難理解。
PHP 在概念上更簡(jiǎn)單所以贏得本輪。稍微懂得一些 PHP 聲明的人就可以開(kāi)發(fā)一些有用的東西。PHP 有更多的軟件依賴(lài),但是 PHP 的概念對(duì)于新手來(lái)說(shuō)不那么繁瑣。
懂一些 JavaScript 和開(kāi)發(fā) Node.js 應(yīng)用是兩回事兒,Node.js 開(kāi)發(fā)方法和大多數(shù)服務(wù)端技術(shù)不同,你需要先弄明白一些相當(dāng)復(fù)雜的概念,比如關(guān)閉和回調(diào)函數(shù)。
第二輪:幫助和支持
沒(méi)有官方文檔和資源(課程,論壇,堆棧溢出)的幫助你必將舉步維艱。 PHP 在本輪輕易勝出,她有大量的指南和二十年的 Q&A。無(wú)論你想做什么,總會(huì)有人在你之前已經(jīng)面對(duì)過(guò)同樣的問(wèn)題。
Node.js 擁有很好的文檔,但是更加年輕,能提供的幫助較 PHP 也少。JavaScript 在市面上的時(shí)間和 PHP 一樣久,但是主要的幫助都是針對(duì)瀏覽器開(kāi)發(fā)的,那基本沒(méi)啥幫助。
第三回合: 語(yǔ)言語(yǔ)法
聲明與結(jié)構(gòu)是不是符合邏輯而且簡(jiǎn)單好用?
不像一些語(yǔ)言跟框架,PHP 不會(huì)限制你按特定的方式編寫(xiě),具體怎么搞隨你。你可以從幾行的程序開(kāi)始,然后添加些方法,進(jìn)而寫(xiě)一些簡(jiǎn)單的 PHP4 模式的對(duì)象,最后編寫(xiě)優(yōu)雅的面向?qū)ο蟮?MVC 模式 PHP5+ 的應(yīng)用。你的代碼開(kāi)始可能比較混亂,但也能工作,而且會(huì)隨著理解的深入越寫(xiě)越好。
PHP 的語(yǔ)法在版本間可能略有調(diào)整,但是向后兼容一般都做得很好。但不幸的是,這也導(dǎo)致了一個(gè)問(wèn)題:PHP 很混亂。例如,怎么統(tǒng)計(jì)一個(gè)字符串中字符的個(gè)數(shù)?是 count?str_len? 還是 strlen?亦或 mb_strlen?PHP 有數(shù)以百記的函數(shù),而且命名規(guī)則也也不完全一致??梢栽囋嚥徊槲臋n寫(xiě)幾行代碼。
JavaScript 相對(duì)就簡(jiǎn)單些,只有幾十個(gè)核心聲明。不過(guò)語(yǔ)法就經(jīng)常被開(kāi)發(fā)者噴了,因?yàn)樗脑突瘜?duì)象模型看起來(lái)平易近人,實(shí)際上卻不是。而且各種數(shù)學(xué)錯(cuò)誤(0.1+0.2 != 0.3)以及類(lèi)型轉(zhuǎn)換的混亂('4' + 2 == '42' 和 '4' - 2 == 2)也招致不少抱怨,但這些情況世界很少導(dǎo)致什么問(wèn)題,多數(shù)語(yǔ)言都有這種借口。
PHP 有他的優(yōu)點(diǎn),但是這回合我判 Node.js 勝。理由如下:
JavaScript 是世界上最難理解的語(yǔ)言 — 但是,當(dāng)哪天你頓悟以后,概念一通,就會(huì)發(fā)現(xiàn)其他語(yǔ)言都太過(guò)笨拙了。
JavaScript 代碼比 PHP 簡(jiǎn)潔。例如,你再不需要跟 JSON 轉(zhuǎn)來(lái)轉(zhuǎn)去—— UTF-8 也不用
全棧工程師可以同時(shí)在客戶(hù)端與服務(wù)端使用 JavaScript 。大腦不需要來(lái)回切換。
深入理解 JavaScript 會(huì)讓你更想用它,但是 PHP 不是這樣。
第四輪:開(kāi)發(fā)工具
兩種技術(shù)都有一些很好的編輯器,集成開(kāi)發(fā)環(huán)境,調(diào)試器,驗(yàn)證器和其他工具。我認(rèn)為這是平局,但是這里有一些工具給 Node.js 些許優(yōu)勢(shì):NPM-包管理器。 NPM 允許你安裝和管理依賴(lài),設(shè)置配置變量,定義腳本和其他。
PHP 的 Composer 項(xiàng)目受 NPM 激發(fā),在有些方面更強(qiáng)。但是,PHP 在默認(rèn)情況想不提供,活動(dòng)庫(kù)較小,在社區(qū)的影響更小。
Grunt 和 Gulp 之類(lèi)革新了開(kāi)發(fā)方法的構(gòu)建工具的壯大,NPM 也有一部分功勞。有時(shí)候 PHP 開(kāi)發(fā)者也許想要/需要安裝 node.js,這不是倒退。
第五輪:環(huán)境
技術(shù)可以在哪使用和部署?支持哪些平臺(tái)和生態(tài)系統(tǒng)?網(wǎng)頁(yè)開(kāi)發(fā)者經(jīng)常需要開(kāi)發(fā)一些并不完全針對(duì)網(wǎng)頁(yè)的應(yīng)用,比如構(gòu)建工具,遷移工具,數(shù)據(jù)庫(kù)轉(zhuǎn)換腳本等。
PHP 有辦法開(kāi)發(fā)桌面應(yīng)用和命令行工具,但是你不會(huì)使用他們。本質(zhì)上,PHP 是一個(gè)服務(wù)端技術(shù),他很擅長(zhǎng)該領(lǐng)域,但是很少延伸到這之外。
若干年前,JavaScript 被認(rèn)為限制很多,有一些邊緣技術(shù),但是他的主戰(zhàn)場(chǎng)還是瀏覽器。Node.js 已經(jīng)改變了這一感覺(jué)并井噴出了很多 JavaScript 項(xiàng)目,你可以在任何地方使用 JavaScript:瀏覽器,服務(wù)器,終端,桌面甚至嵌入式系統(tǒng),這使得 JavaScript 無(wú)處不在。
第六輪:集成
開(kāi)發(fā)技術(shù)很受限制,除非他們能與數(shù)據(jù)庫(kù)和驅(qū)動(dòng)集成。PHP 在這方面很強(qiáng),PHP 面世已經(jīng)很多年,他的擴(kuò)展使他能和擁有主流或冷門(mén)的 API 的服務(wù)器直接通訊。
Node.js 正在迎頭直追,但是你也許會(huì)為某些老舊,冷門(mén)的技術(shù)尋找成熟集成組件而頭疼。
第七輪:托管和部署
部署你絢麗新應(yīng)用到在線網(wǎng)頁(yè)服務(wù)器有多容易?這是 PHP 的另一次完勝。隨機(jī)聯(lián)系某個(gè)網(wǎng)頁(yè)托管公司你可以找到對(duì)主要的 PHP 支持,也許還免費(fèi)附送 MySQL。對(duì)于沙盒,PHP 被認(rèn)為更簡(jiǎn)單,有風(fēng)險(xiǎn)的擴(kuò)展可以被禁用。
Node.js 是個(gè)不同的野獸,服務(wù)端的應(yīng)用永遠(yuǎn)運(yùn)行。你需要一臺(tái)物理/虛擬/云或定制的服務(wù)器環(huán)境,最好有 root 權(quán)限,這對(duì)有些服務(wù)器來(lái)說(shuō)遙不可及,特別是那些共享的服務(wù)器,你有可能讓整臺(tái)服務(wù)器宕機(jī)。
Node.js 托管將會(huì)變得簡(jiǎn)單,但是我認(rèn)為他永遠(yuǎn)沒(méi)法像 FTP 上傳一些 PHP 文件那么方便。
第八輪:性能
PHP 很勤快,有很多項(xiàng)目跟選項(xiàng)可以使它跑得更快。即使那些對(duì)性能要求很?chē)?yán)苛的 PHP 開(kāi)發(fā)者也幾乎不會(huì)擔(dān)心速度問(wèn)題, 但是 Node.js 性能通常更好一些。 當(dāng)然,性能很大程度上決定于開(kāi)發(fā)團(tuán)隊(duì)的經(jīng)驗(yàn)以及是否上心, 但是 Node.js 還是有如下幾條優(yōu)勢(shì)的:
更少的依賴(lài)
所有對(duì) PHP 應(yīng)用的請(qǐng)求都必須經(jīng)過(guò)一個(gè) WEB 服務(wù)器的路由,來(lái)啟動(dòng) PHP 的解釋器運(yùn)行 PHP 代碼。Node.js 不需要這些依賴(lài), 而且你基本一定會(huì)使用一個(gè)帶服務(wù)器的框架,像 Express,他很輕量,很好的扮演你應(yīng)用的一部分。
更小更快的解釋器
Node.js 的解釋器比 PHP 的更小更靈活。 他并不受舊版語(yǔ)言遺留兼容問(wèn)題的拖累,而且 Google 在 V8 引擎性能改善上出了大力。
應(yīng)用永久在線
PHP 遵循標(biāo)準(zhǔn)客戶(hù)端-服務(wù)端模型。 每個(gè)頁(yè)面請(qǐng)求都會(huì)初始化應(yīng)用; 你讀取配置參數(shù)、連接數(shù)據(jù)庫(kù)、讀取信息、渲染 HTML。Node.js 應(yīng)用持久運(yùn)行,只需要啟動(dòng)一次。例如,你可以創(chuàng)建一個(gè)單獨(dú)數(shù)據(jù)連接對(duì)象,然后所求請(qǐng)求一起復(fù)用。公認(rèn)的,PHP 也有一些途徑來(lái)實(shí)現(xiàn),比如使用 Memcached ,但是這已經(jīng)不是語(yǔ)言的標(biāo)準(zhǔn)特性了。
事件驅(qū)動(dòng),無(wú)阻塞 I/O
PHP 跟其他多數(shù)服務(wù)端語(yǔ)言采用阻塞執(zhí)行的模型。 當(dāng)你執(zhí)行一個(gè)命令,比如從數(shù)據(jù)庫(kù)取數(shù)據(jù),那么必須等這個(gè)指令執(zhí)行完成后,才會(huì)執(zhí)行下面的內(nèi)容。 Node.js 通常不會(huì)等的。 取而代之的是, 你需要提供一個(gè)回調(diào)函數(shù),這個(gè)函數(shù)當(dāng)指令執(zhí)行完后會(huì)被調(diào)用一次。例如:
這個(gè)例子中, 控制臺(tái)會(huì)先輸出‘finished',然后輸出‘N records returned',因?yàn)?process 函數(shù)是所有數(shù)據(jù)返回的時(shí)候才被調(diào)用的。 換句話說(shuō),當(dāng)解釋器在其它進(jìn)程處理的時(shí)候可以干些別的事情。
注意情況比較復(fù)雜,還有幾個(gè)警告:
Node.js/JavaScript 只能在單線程上運(yùn)行,但是大多數(shù) web 服務(wù)器都是多線程,而且并發(fā)的處理請(qǐng)求。
一個(gè)用戶(hù)長(zhǎng)時(shí)間運(yùn)行的 JavaScript 處理會(huì)阻止其它用戶(hù)的代碼執(zhí)行,除非拆分任務(wù)或者使用Web Workers。
基準(zhǔn)測(cè)試是主觀的和有缺陷的;可以找到一些例子 Node.js 比較好,而一些相對(duì)的例子 PHP 比較好 。程序員只是在嘗試證明他們的信仰!
書(shū)寫(xiě)異步的事件驅(qū)動(dòng)的代碼非常復(fù)雜,非常有挑戰(zhàn)性。
我只能從我的經(jīng)驗(yàn)來(lái)講: 我的 Node.js 應(yīng)用要明顯比 PHP 的同等應(yīng)用要快。你的可能不是,但是不試是永遠(yuǎn)不會(huì)知道的。
第九輪:開(kāi)發(fā)者激情
這會(huì)超出”常見(jiàn)網(wǎng)頁(yè)開(kāi)發(fā)挑戰(zhàn)“這樣的目標(biāo),但是這很重要。如果你恐懼每天寫(xiě)代碼,那你無(wú)所謂哪門(mén)語(yǔ)言更好。
很難為此做出比較但是一些 PHP 開(kāi)發(fā)者對(duì) PHP 這門(mén)語(yǔ)言很有激情。你最近一次讀到讓你走心的 PHP 文章或幻燈片是什么時(shí)候?也許已無(wú)需再說(shuō)?可能是更低的曝光度?或者我沒(méi)找對(duì)地方?PHP7 有一些新的功能,但是該技術(shù)已經(jīng)原地踏步很多年了,雖說(shuō)如此,很少有開(kāi)發(fā)人員對(duì)PHP發(fā)牢騷。
JavaScript 分離了社區(qū),有人愛(ài)也有人恨,一些程序員在中間猶豫不決,經(jīng)管如此,對(duì) Node.js 的反饋大多積極,她正處于風(fēng)口浪尖,一部分原因是因?yàn)樗苄?,贊譽(yù)不一定持續(xù)。目前,Node.js 贏得本輪。
第十輪:前景
您選擇采用哪種服務(wù)端語(yǔ)言并不重要;即使她不再被更新也會(huì)照樣繼續(xù)工作(yay ColdFusion?。┍M管使用量上趨于穩(wěn)定但是很多人依然使用 PHP,我打包票她還能再堅(jiān)挺二十年。
Node.js 崛起得很迅速,她提供了一種現(xiàn)代的開(kāi)發(fā)方式,使用和客戶(hù)端開(kāi)發(fā)一樣的語(yǔ)法同時(shí)支持 HTML5 變革式的特征,比如網(wǎng)絡(luò)套接字和服務(wù)端發(fā)送事件。盡管大家對(duì)該語(yǔ)言的分叉函數(shù)有些爭(zhēng)議,但是Node.js的使用量還是呈指數(shù)級(jí)增長(zhǎng)。
Node.js 勢(shì)必會(huì)蠶食 PHP 的市場(chǎng)份額,但是我不認(rèn)為她能完全取而代之。兩種技術(shù)都有光輝的未來(lái)。我宣布本輪平手。
最終贏家
最終分?jǐn)?shù):Node.js 贏得5輪,PHP 贏得4輪,一輪平手。原以為會(huì)倒向其中一方,結(jié)果比我預(yù)想的更中庸一些。
Node.js 有一定的學(xué)習(xí)曲線,對(duì)新手來(lái)說(shuō)不夠理想但是她贏得了本次對(duì)決。而且,如果你是位喜歡該語(yǔ)言的靠譜的 JavaScript 程序員,Node.js 不會(huì)讓你失望。她更新潮而且提供自己網(wǎng)頁(yè)開(kāi)發(fā)的體驗(yàn),你不會(huì)思念 PHP。
但是不要貶低 PHP,PHP 依然有活力,你不該因?yàn)?Node.js 快一些,新一些或新潮一些就去緊跟 Node.js 潮流。PHP 易學(xué)而且依然支持專(zhuān)業(yè)的編程技巧,幫助無(wú)處不在而且開(kāi)發(fā)簡(jiǎn)單。甚至死忠的 Node.js 開(kāi)發(fā)者也不得不在簡(jiǎn)單網(wǎng)站和應(yīng)用時(shí)考慮使用 PHP。
我的建議是:評(píng)估選項(xiàng),根據(jù)你的需求來(lái)選擇一門(mén)語(yǔ)言,這比本文這樣的”對(duì)比“文章靠譜得多。
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
php mysql_list_dbs()函數(shù)用法示例
這篇文章主要介紹了php mysql_list_dbs()函數(shù)用法,簡(jiǎn)單介紹了mysql_list_dbs()函數(shù)的功能及列出mysql所有數(shù)據(jù)庫(kù)的實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-03-03
thinkphp使用phpmailer發(fā)送郵件的方法
這篇文章主要介紹了thinkphp使用phpmailer發(fā)送郵件的方法,包含了配置發(fā)送郵件類(lèi)、設(shè)置參數(shù)及發(fā)送郵件測(cè)試等的具體步驟,具有一定的實(shí)用價(jià)值,需要的朋友可以參考下2014-11-11
PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之命名空間與自動(dòng)加載類(lèi)詳解
這篇文章主要介紹了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之命名空間與自動(dòng)加載類(lèi),結(jié)合實(shí)例形式分析了php命名空間與自動(dòng)加載類(lèi)的概念、功能、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-12-12
php初學(xué)者寫(xiě)及時(shí)補(bǔ)給skype用戶(hù)充話費(fèi)的小程序
前段時(shí)間有一個(gè)活動(dòng)上線,存在一個(gè)有少量的skype用戶(hù)沒(méi)充上話費(fèi)的問(wèn)題,今天去數(shù)據(jù)庫(kù)(mysql)查詢(xún)了一下,嚇我一跳,還真多.這樣讓我挨個(gè)挨個(gè)地充,肯定累死人不可2008-11-11
PHP實(shí)現(xiàn)的多進(jìn)程控制demo示例
這篇文章主要介紹了PHP實(shí)現(xiàn)的多進(jìn)程控制demo,涉及php信號(hào)處理與進(jìn)程控制相關(guān)操作技巧,需要的朋友可以參考下2019-07-07
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函數(shù)
mysql日期函數(shù)From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT(后者只能格式化標(biāo)準(zhǔn)日期格式,時(shí)間戳的不行)2010-03-03

