• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            xiaoguozi's Blog
            Pay it forword - 我并不覺的自豪,我所嘗試的事情都失敗了······習(xí)慣原本生活的人不容易改變,就算現(xiàn)狀很糟,他們也很難改變,在過程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛傳出去,很困難,也無法預(yù)料,人們需要更細(xì)心的觀察別人,要隨時(shí)注意才能保護(hù)別人,因?yàn)樗麄兾幢刂雷约阂裁础ぁぁぁぁ?/span>

            先來介紹幾個(gè)核心函數(shù):

             

            mktime 函數(shù)

            mktime() 函數(shù)返回一個(gè)日期的 Unix 時(shí)間戳。

            參數(shù)總是表示 GMT 日期,因此 is_dst 對結(jié)果沒有影響。

            參數(shù)可以從右到左依次空著,空著的參數(shù)會(huì)被設(shè)為相應(yīng)的當(dāng)前 GMT 值。

            語法

            mktime(hour,minute,second,month,day,year,is_dst)

             

            Java代碼  收藏代碼
            1. 參數(shù)      描述  
            2. hour    可選。規(guī)定小時(shí)。  
            3. minute  可選。規(guī)定分鐘。  
            4. second  可選。規(guī)定秒。  
            5. month   可選。規(guī)定用數(shù)字表示的月。  
            6. day             可選。規(guī)定天。  
            7. year    可選。規(guī)定年。在某些系統(tǒng)上,合法值介于 1901 - 2038 之間。不過在 PHP 5 中已經(jīng)不存在這個(gè)限制了。  
            8. is_dst  可選。如果時(shí)間在日光節(jié)約時(shí)間(DST)期間,則設(shè)置為1,否則設(shè)置為0,若未知,則設(shè)置為-1。  
            9.   
            10. 自 5.1.0 起,is_dst 參數(shù)被廢棄。因此應(yīng)該使用新的時(shí)區(qū)處理特性。  

             

            Java代碼  收藏代碼
            1. 例子  
            2.   
            3. mktime() 函數(shù)對于日期運(yùn)算和驗(yàn)證非常有用。它可以自動(dòng)校正越界的輸入:  
            4.   
            5. <?php  
            6. echo(date("M-d-Y",mktime(0,0,0,12,36,2001)));  
            7. echo(date("M-d-Y",mktime(0,0,0,14,1,2001)));  
            8. echo(date("M-d-Y",mktime(0,0,0,1,1,2001)));  
            9. echo(date("M-d-Y",mktime(0,0,0,1,1,99)));  
            10. ?>  
            11.   
            12. 輸出:  
            13.   
            14. Jan-05-2002  
            15. Feb-01-2002  
            16. Jan-01-2001  
            17. Jan-01-1999   

             

             

             

            strtotime 函數(shù)

            strtotime() 函數(shù)將任何英文文本的日期時(shí)間描述解析為 Unix 時(shí)間戳。

             

            語法

            strtotime(time,now)

             

            Java代碼  收藏代碼
            1. 參數(shù)      描述  
            2. time    規(guī)定要解析的時(shí)間字符串。  
            3. now     用來計(jì)算返回值的時(shí)間戳。如果省略該參數(shù),則使用當(dāng)前時(shí)間。   
             

              一周之后:  strtotime("+1 week") ;

              一周之前:  strtotime("-1 week") ;

              一月之后:  strtotime("+1 months") ;

              一天之后:  strtotime("+1 days") ;      

             

              30秒之后 strtotime( " +30 seconds " );

              20分鐘之后 strtotime( " +20 minutes " );

              12個(gè)小時(shí)之后 strtotime( " +12 hours " );

             

             

            date 函數(shù)

            date() 函數(shù)格式化一個(gè)本地時(shí)間/日期。

            語法

            date(format,timestamp)

             

             

            date_default_timezone_set 函數(shù)

            date_default_timezone_set() 函數(shù)設(shè)置用在腳本中所有日期/時(shí)間函數(shù)的默認(rèn)時(shí)區(qū)。

            語法

            date_default_timezone_set(timezone)
            Java代碼  收藏代碼
            1. 參數(shù)      描述  
            2. timezone    必需。時(shí)區(qū)標(biāo)識符,比如 "UTC" 或 "Europe/Paris"。  
            3. 合法時(shí)區(qū)的列表:http://www.php.net/manual/en/timezones.php  
             

            實(shí)例

             

            第一種情況是沒有數(shù)據(jù)庫,只是得到的日期值進(jìn)行比較的話,那就得完全用php的時(shí)間日期函數(shù)計(jì)算了,如下:


            比如要計(jì)算2009-9-5到2009-9-18還有多少天:

             

            Java代碼  收藏代碼
            1. <?php  
            2. $startdate=strtotime("2009-9-5");  
            3. $enddate=strtotime("2009-9-18");    //上面的php時(shí)間日期函數(shù)已經(jīng)把日期變成了時(shí)間戳,就是變成了秒。這樣只要讓兩數(shù)值相減,然后把秒變成天就可以了,比較的簡單,如下:  
            4. $days=round(($enddate-$startdate)/3600/24) ;  
            5. echo $days;     //days為得到的天數(shù);  
            6. ?>  

             

             第二種 孩子的成長

             

            Java代碼  收藏代碼
            1. <?  
            2. date_default_timezone_set('Asia/Shanghai');  
            3. //以上一句為設(shè)置時(shí)區(qū),其實(shí)不設(shè)也行,但是zde debug的時(shí)候會(huì)有提示,說什么不安全的函數(shù)…添上吧。  
            4.   
            5. echo date('Y-m-d H:i:s').' 今天是'.date('Y').'年的第'.date('W').'周';  
            6.   
            7. $stime='2005-11-03 10:08';  
            8. echo "<br/><br/>***自出生(<font color=blue>$stime</font>)以來…:<br/><br/>";  
            9. echo "今天是第<font color=red><b>".Lnbsp(daysofnow($stime),3)."</b></font>天<br/>";  
            10. echo "今天是第<font color=red><b>".Lnbsp(weeksofnow($stime),3)."</b></font>周<br/>";  
            11. echo "今天是第<font color=red><b>".Lnbsp(monthsofnow($stime),3)."</b></font>個(gè)月<br/>";  
            12. echo "今天是第<font color=red><b>".Lnbsp(yearsofnow($stime),3)."</b></font>年<br/>";  
            13. /* 
            14. $output=sprintf(" 今 天是第<font color=red><b>%03d</b></font>天<br/& gt;今天是第< font color=red><b>%03d</b></font>周< br/>今天是第< font color=red><b>%03d</b></font>個(gè) 月<br/>今天是第< font color=red><b>%03d</b></font& gt; 年<br/& gt;",daysofnow($stime),weeksofnow($stime),monthsofnow($stime),yearsofnow($stime)); 
            15. echo $output; 
            16. */  
            17.   
            18. function weeksofnow($stime)  
            19. {  
            20.     $ftime=strtotime($stime);  
            21.     $fweeks=date('w',$ftime);  
            22.     if ($fweeks==0) $fweeks=7;  
            23.     $nweeks=date('w');  
            24.     if ($nweeks==0) $nweeks=7;  
            25.     $ftemp=strtotime(date('Y-m-d 00:00:00',$ftime))-$fweeks*60*60*24;  
            26.     $ntemp=strtotime(date('Y-m-d 00:00:00',time()))+(7-$nweeks)*60*60*24;  
            27.     //echo date('w',$ftemp)."<br/>....<br/>".date('w',$ntemp)."<br/>";  
            28.     return ($ntemp-$ftemp)/60/60/24/7;  
            29. }  
            30.   
            31. function daysofnow($stime)  
            32. {  
            33.     $ftime=strtotime($stime);  
            34.     return ceil(abs((time()-$ftime)/(60*60*24)));  
            35. }  
            36.   
            37. function monthsofnow($stime)  
            38. {  
            39.     $ftime=strtotime($stime);  
            40.     $fmonth=date('m',$ftime);  
            41.     $fyear=date('Y',$ftime);  
            42.     $nmonth=date('m');  
            43.     $nyear=date('Y');  
            44.     $result=($nyear-$fyear)*12+$nmonth-$fmonth+1;  
            45.     return $result;  
            46. }  
            47.   
            48. function yearsofnow($stime)  
            49. {  
            50.     $ftime=strtotime($stime);  
            51.     $fyear=date('Y',$ftime);  
            52.     $nyear=date('Y');  
            53.     return $nyear-$fyear+1;  
            54. }  
            55.   
            56. // 下面的函數(shù)只是加空格用的,不是核心內(nèi)容,只為美觀  
            57. function Lnbsp($data,$num)  
            58. {  
            59.     $result=trim($data);  
            60.     for($i=$num;$i>=strlen($data);$i--) {  
            61.         $result='&nbsp;'.$result;  
            62.     }  
            63.     return $result;  
            64. }  
            65. ?>  

             

             第三種  明天,下個(gè)月和明年的日期,就可以用以下的代碼:

             

            Java代碼  收藏代碼
            1. $tomorrow     = date('Y-m-d',mktime (0,0,0,date("m"),date("d")+1,date("Y")));  
            2. $nextmonth   = date('Y-m',mktime (0,0,0,date("m")+1,date("d")+1,date("Y")));  
            3. $nextyear     = date('Y',mktime (0,0,0,date("m"),date("d"),date("Y")+1));   
            4.   
            5. echo $tomorrow.'<br/>';  
            6. echo $nextmonth.'<br/>';  
            7. echo $nextyear.'<br/>';  

             

            第四種 工作時(shí)間(刨除假日)

             

             

            Java代碼  收藏代碼
            1. <?  
            2. $startDate="2001-12-12";  
            3. $endDate="2002-11-1";  
            4.   
            5. $holidayArr=array("05-01","05-02","10-01","10-01","10-02","10-03","10-04","10-05","01-26","01-27","01-28","01-29");  
            6.         //假期日期數(shù)組,比方國慶,五一,春節(jié)等  
            7. $endWeek=2;  
            8.         //周末是否雙休.雙休為2,僅僅星期天休息為1,沒有休息為0  
            9.   
            10. $beginUX=strtotime($startDate);  
            11. $endUX=strtotime($endDate);  
            12.   
            13. for($n=$beginUX;$n<=$endUX;$n=$n+86400){  
            14.     $week=date("w",$n);  
            15.     $MonDay=date("m-d",$n);  
            16.     if($endWeek){//去處周末休息  
            17.         if($endWeek==2){  
            18.             if($week==0||$week==6) continue;  
            19.         }  
            20.         if($endWeek==1){  
            21.             if($week==0) continue;  
            22.         }  
            23.     }  
            24.     if(in_array($MonDay,$holidayArr)) continue;  
            25.     $totalHour+=10;//每天工作10小時(shí)  
            26. }  
            27. echo "開始日期:$startDate<BR>";  
            28. echo "結(jié)束日期:$endDate<BR>";  
            29. echo "共花了".$totalHour."小時(shí)";  
            30. ?>  
             

             

            第五種 mysql 處理日期 (防灌水)

             

            Java代碼  收藏代碼
            1. // $ip = getenv('REMOTE_ADDR');  
            2.   
            3. $sql = "SELECT TIME_TO_SEC(NOW())-TIME_TO_SEC(time_at) from test ";  
            4.        //  或者   select   time_to_sec("1980-8-20 12:25:33") - time_to_sec("1997-1-23 6:04:56")  
            5.   
            6.       

             

            或者用

             

            Java代碼  收藏代碼
            1. SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate  
            2.   
            3. /* 
            4.  結(jié)果: 
            5. DiffDate 
            6. */  
             

            或者

             

            Java代碼  收藏代碼
            1. /* 
            2. 假設(shè)我們有如下的表: 
            3. OrderId     ProductName     OrderDate 
            4. 1            'Computer'     2008-12-29 16:25:46.635 
            5. */  
            6.   
            7. SELECT OrderId,DATE_ADD(OrderDate,INTERVAL 2 DAY) AS OrderPayDate FROM Orders  
            8.   
            9. /* 
            10. 結(jié)果: 
            11. OrderId     OrderPayDate 
            12. 1            2008-12-31 16:25:46.635 
            13. */  

            詳見:http://www.w3school.com.cn/sql/func_date_format.asp

                     http://www.w3school.com.cn/sql/sql_dates.asp

             

             

            給出秒算小時(shí) php

            Php代碼  收藏代碼
            1. <?php  
            2. function transform($sec){  
            3.   
            4.     $output = '';  
            5.       
            6.     $hours = floor($sec / 3600);  
            7.     $remainSeconds = $sec % 3600;  
            8.   
            9.     $minutes = floor($remainSeconds / 60);  
            10.     $seconds = $sec - $hours * 3600 - $minutes * 60;  
            11.   
            12.     if($sec >= 3600){   
            13.         $output .= $hours.' h / ';  
            14.         $output .= $minutes.' m / ';  
            15.     }  
            16.   
            17.     if($sec >= 60 && $sec < 3600){  
            18.         $output .= $minutes.' m / ';  
            19.     }  
            20.       
            21.     return $output .= $seconds.' s ';  
            22. }  
            23.   
            24. echo transform(3231803);  
            25.   
            26. ?>  
             

            帖子發(fā)表于**前 (時(shí)間戳與日期換算的應(yīng)用)

            Php代碼  收藏代碼
            1. <?php  
            2. function units($time){  
            3.   $year   = floor($time / 60 / 60 / 24 / 365);  
            4.   $time  -= $year * 60 * 60 * 24 * 365;  
            5.   $month  = floor($time / 60 / 60 / 24 / 30);  
            6.   $time  -= $month * 60 * 60 * 24 * 30;  
            7.   $week   = floor($time / 60 / 60 / 24 / 7);  
            8.   $time  -= $week * 60 * 60 * 24 * 7;  
            9.   $day    = floor($time / 60 / 60 / 24);  
            10.   $time  -= $day * 60 * 60 * 24;  
            11.   $hour   = floor($time / 60 / 60);  
            12.   $time  -= $hour * 60 * 60;  
            13.   $minute = floor($time / 60);  
            14.   $time  -= $minute * 60;  
            15.   $second = $time;  
            16.   $elapse = '';  
            17.   
            18.   $unitArr = array('年'  =>'year', '個(gè)月'=>'month',  '周'=>'week', '天'=>'day',  
            19.                    '小時(shí)'=>'hour', '分鐘'=>'minute', '秒'=>'second'  
            20.                    );  
            21.   
            22.   foreach ( $unitArr as $cn => $u )  {  
            23.       if ( $$u > 0 )      {  
            24.           $elapse = $$u . $cn;  
            25.           break;  
            26.       }  
            27.   }  
            28.   
            29.   return $elapse;  
            30. }  
            31.   
            32. function stamp($past){  
            33.     date_default_timezone_set("America/New_York"); // 解決php5.1以上時(shí)間戳?xí)c實(shí)際時(shí)間相差8小時(shí),找時(shí)區(qū)請到http://www.php.net/manual/en/timezones.php  
            34.   
            35.     $year    =(int)substr($past,0,4); // 取得年份   
            36.     $month   =(int)substr($past,5,2); // 取得月份  
            37.     $day     =(int)substr($past,8,2); // 取得幾號  
            38.   
            39.     $hour    =(int)substr($past,11,2); // 取得小時(shí)  
            40.     $minutes =(int)substr($past,14,2); // 取得分鐘  
            41.     $second  =(int)substr($past,17,2); // 取得秒數(shù)  
            42.   
            43.     $past = mktime($hour,$minutes,$second,$month,$day,$year);  
            44.     $now  = time();      
            45.     $diff = $now - $past;  
            46.       
            47.     return '發(fā)表于' . units($diff) . '前';  
            48. }  
            49.   
            50. $past = '2009-12-24 16:49:00'; // 從數(shù)據(jù)庫得到日期  
            51.   
            52. echo stamp($past);  
            53.   
            54. ?>  
             

            兩個(gè)日期相差的天數(shù)

             

            #方法一:簡單方法

             

            Php代碼  收藏代碼
            1. $olddate = '2010-02-11'; //如果要用mktime函數(shù),則要用explode拆解日期。  
            2. $oldtime = strtotime($olddate);  
            3. $passtime = time()-$oldtime; //經(jīng)過的時(shí)間戳。  
            4. echo '你在網(wǎng)上泡了'.floor($passtime/(24*60*60)).'天了'.'<br />'; //12天。  
             

            #方法二:用減去全年天數(shù)的時(shí)間戳來獲取。

             

            Php代碼  收藏代碼
            1. $yDate=1;  
            2. $yDate_Y=date('Y',time())-1; //年份-1,即去年  
            3. $yDateYMD="$yDate_Y-01-01";  
            4. $yYMD=strtotime($yDateYMD); //去年的1月1號時(shí)間戳。  
            5. $d=date('L',$yYMD)?366:365; //是否是閏年  
            6. $yYearTime=$d*24*60*60;  
            7.   
            8. $yYear=date('Y-m-d',time()-$yYearTime);  
            9. echo "去年的今天:$yYear<br />"; //2009-02-23  

             

            #方法三:用直接截取當(dāng)前日期的年份減一,但不嚴(yán)謹(jǐn),沒有考慮到閏年。

             

            Php代碼  收藏代碼
            1. #計(jì)算60年前的今天。忽略當(dāng)中經(jīng)過的閏年。  
            2. $yDate_Y=$yDate_Y-59;  
            3. $md=explode('-',date('Y-m-d'));  
            4. $yYMD="$yDate_Y-{$md[1]}-{$md[2]}";  
            5. echo "60年前的今天:$yYMD <br />"; //1950-02-23  
             

            #方法四: 用strtotime()和 GNU日期語法---------推薦!

             

            Php代碼  收藏代碼
            1. //3天后; //當(dāng)前時(shí)間為2010-02-23  
            2. $d=strtotime('3 days');  
            3. echo '3天后'.date('Y-m-d',$d)."<br />";  
            4. //3天前:  
            5. $d=strtotime('-3 days');  
            6. echo '3天前'.date('Y-m-d',$d)."<br />"; //2010-02-20  
            7. //一個(gè)月前:  
            8. $d=strtotime('-1 months');  
            9. echo '一個(gè)月前'.date('Y-m-d',$d)."<br />"; //2010-01-23  
            10.   
            11. //2個(gè)月后:  
            12. $d=strtotime('2 months');  
            13. echo '二個(gè)月后'.date('Y-m-d',$d)."<br />"; //2010-04-23  
            14.   
            15. //1年前:  
            16. $d=strtotime('-1 years');  
            17. echo '1年前'.date('Y-m-d',$d)."<br />"; //2009-02-23  
            18.   
            19. //2小時(shí)前:  
            20. $d=strtotime('-2 hours');  
            21. echo '目前:'.date('Y-m-d H:i:s',time()).',2小時(shí)前'.date('Y-m-d H:i:s',$d)."<br />"; //目前:2010-02-23 13:38:49,2小時(shí)前2010-02-23 11:38:49  
             

            重設(shè)時(shí)間

             

            Java代碼  收藏代碼
            1. //DateTime構(gòu)造函數(shù):o bject DateTime([string $time [,dateTimeZone $timezone])  
            2. $date = new DateTime('2010-02-23 12:26:36');  
            3. echo $date->format('Y-m-d H:i:s')."<br />"; //和date()函數(shù)相同。2010-02-23 12:26:36  
            4.   
            5. //重設(shè)時(shí)間:  
            6. //1、重設(shè)日期: boolean setDate(int year,int month,int day)  
            7. //2、重設(shè)時(shí)間: boolean setDate(int hour,int minute[,int second])  
            8. $date->setDate(2010,2,28);  
            9. echo $date->format('Y-m-d H:i:s')."<br />"; //2010-02-28 12:26:36  
            10.   
            11. //日期計(jì)算,相當(dāng)于上面的strtotime()  
            12. $date->modify("+7 hours");  
            13. echo $date->format('Y-m-d H:i:s')."<br />"; //2010-02-28 19:26:36  
            14. $date->modify("3 days");  
            15. echo $date->format('Y-m-d H:i:s')."<br />"; //2010-03-03 19:26:36 //從上面被改過的28號開始  
            16.   
            17. /*PHP5在WIN不支持money_format函數(shù)? 
            18. setlocale(LC_MONETARY,'zh_CN'); 
            19. echo money_format("%i",786.56);//?Fatal error: Call to undefined function money_format() 
            20. */ 
            posted on 2012-03-06 22:39 小果子 閱讀(1057) 評論(0)  編輯 收藏 引用 所屬分類: 學(xué)習(xí)筆記
            欧美午夜精品久久久久久浪潮| 国产高潮国产高潮久久久91 | 久久久亚洲欧洲日产国码二区| 久久久久无码中| 精品久久人人妻人人做精品 | 色偷偷888欧美精品久久久| 亚洲熟妇无码另类久久久| 狠狠色丁香婷婷久久综合| 午夜精品久久久内射近拍高清| 99精品久久久久久久婷婷| 久久国产亚洲精品麻豆| 国产精品免费福利久久| 国产成人久久激情91| jizzjizz国产精品久久| 99久久99久久| 狠狠色丁香久久婷婷综| 精品久久久久久中文字幕| 国产精品99久久免费观看| 国产精品久久久久国产A级| 久久精品国产亚洲av麻豆小说| 久久婷婷激情综合色综合俺也去| 亚洲中文字幕无码久久综合网| 77777亚洲午夜久久多喷| 色欲综合久久中文字幕网| 久久久无码精品亚洲日韩按摩 | 久久香蕉国产线看观看精品yw| 久久亚洲精品中文字幕| 国内精品久久久久影院优| 欧美综合天天夜夜久久| 国内精品久久久久久久亚洲| 日韩久久久久中文字幕人妻| 久久亚洲精品无码aⅴ大香| 亚洲国产精品一区二区久久hs| 久久久免费精品re6| 久久99精品久久久久久9蜜桃 | 亚洲中文字幕久久精品无码APP | 久久av高潮av无码av喷吹| 亚洲伊人久久综合影院| 久久久无码精品亚洲日韩蜜臀浪潮| 国产精品久久久天天影视香蕉| 久久久久99这里有精品10|