php中根據(jù)某年第幾天計算出日期年月日的代碼
更新時間:2011年02月24日 23:52:31 作者:
在PHP中,使用內(nèi)置的date()函數(shù)很容易得到任意一天是當(dāng)前年的第幾天,格式為date('z'),為此,很多PHP程序會用一年中的第幾天作為數(shù)據(jù)庫的索引(index)。
這個索引值除了方便面數(shù)據(jù)的記錄和搜索,還起著記錄日期資訊的作用,信息量很可觀。
那么,如何還原索引值為可用的日期資訊呢?
date('z')返回的是一年中的第幾天,返回值為從0開始至365的整數(shù)。要將這些整數(shù)還原為日期信息,我們只需要一個簡單的計算。以今年(2008年)第159天(實際為160天,php中從0開始,0對應(yīng)于常規(guī)的第一天)為例,計算它的日期、星期方法如下:
<?php
$MyDate=159; //第159天
$milliseconds = mktime(0,0,0,1,1,2008) + $MyDate * 86400; //取得UNIX時間戳記
$msg = date('F jS Y , l',$milliseconds); //格式化日期輸出
echo $msg;
?>
運行以上程序,瀏覽器上顯示的信息將是:June 8th 2008 , Sunday
解釋:
一. $milliseconds是UNIX時間戳記變量,它表明2008年第159天所經(jīng)歷的從UNIX公元紀(jì)(1700年1月1日)以來的毫秒數(shù),它將作為 參數(shù)用于date()函數(shù)中參與計算日期信息,是個重要的依據(jù)。要正確計算$milliseconds的值,我們首先需要得到2008年1日1日所經(jīng)歷的 毫秒數(shù),即,mktime(0,0,0,1,1,2008),然后加上159天的毫秒數(shù),即,$MyDate * 86400,因為,每一天的86400毫秒。
二. $msg是我們格式化輸出的日期資訊,此變量值的取得通過date()函數(shù),第一個參數(shù)“'F jS Y , l'”只是格式化格式,還可以根據(jù)需要設(shè)置為別的,第二個參數(shù)是毫秒數(shù)(長整型),其意義為從UNIX起始年到某個特定時刻所經(jīng)歷的毫秒總數(shù)。
為了驗證程序的正確性,我們可以打印一下2008年6月8日所經(jīng)歷的毫秒數(shù):mktime(0,0,0,6,8,2008),它的值將與$milliseconds是一樣的:1212854400。
那么,如何還原索引值為可用的日期資訊呢?
date('z')返回的是一年中的第幾天,返回值為從0開始至365的整數(shù)。要將這些整數(shù)還原為日期信息,我們只需要一個簡單的計算。以今年(2008年)第159天(實際為160天,php中從0開始,0對應(yīng)于常規(guī)的第一天)為例,計算它的日期、星期方法如下:
復(fù)制代碼 代碼如下:
<?php
$MyDate=159; //第159天
$milliseconds = mktime(0,0,0,1,1,2008) + $MyDate * 86400; //取得UNIX時間戳記
$msg = date('F jS Y , l',$milliseconds); //格式化日期輸出
echo $msg;
?>
運行以上程序,瀏覽器上顯示的信息將是:June 8th 2008 , Sunday
解釋:
一. $milliseconds是UNIX時間戳記變量,它表明2008年第159天所經(jīng)歷的從UNIX公元紀(jì)(1700年1月1日)以來的毫秒數(shù),它將作為 參數(shù)用于date()函數(shù)中參與計算日期信息,是個重要的依據(jù)。要正確計算$milliseconds的值,我們首先需要得到2008年1日1日所經(jīng)歷的 毫秒數(shù),即,mktime(0,0,0,1,1,2008),然后加上159天的毫秒數(shù),即,$MyDate * 86400,因為,每一天的86400毫秒。
二. $msg是我們格式化輸出的日期資訊,此變量值的取得通過date()函數(shù),第一個參數(shù)“'F jS Y , l'”只是格式化格式,還可以根據(jù)需要設(shè)置為別的,第二個參數(shù)是毫秒數(shù)(長整型),其意義為從UNIX起始年到某個特定時刻所經(jīng)歷的毫秒總數(shù)。
為了驗證程序的正確性,我們可以打印一下2008年6月8日所經(jīng)歷的毫秒數(shù):mktime(0,0,0,6,8,2008),它的值將與$milliseconds是一樣的:1212854400。
相關(guān)文章
php中echo、print和print_r的區(qū)別點及用法總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于php中echo、print和print_r的區(qū)別點及用法總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2021-12-12PHP實現(xiàn)的一致性Hash算法詳解【分布式算法】
這篇文章主要介紹了PHP實現(xiàn)的一致性Hash算法,結(jié)合實例形式詳細(xì)分析了php一致性Hash算法的概念、原理及相關(guān)實現(xiàn)與使用技巧,需要的朋友可以參考下2018-03-03PHP基于GD2函數(shù)庫實現(xiàn)驗證碼功能示例
這篇文章主要介紹了PHP基于GD2函數(shù)庫實現(xiàn)驗證碼功能,簡單介紹了GD2函數(shù)庫的常用函數(shù),并結(jié)合實例形式分析了php實現(xiàn)驗證碼功能相關(guān)操作技巧,需要的朋友可以參考下2019-01-01