不管是哪门编程语言都会有详细的文档及丰富的API来满足程序中对时间的使用。
时间在使用过程中就显的很重要。让我们来分析下程序数据的时间。
时间的组成:年月日时分秒
很简单,就是有六个元素所构成的标识时间的概念。
我们常用的时间功能会有哪些?
1. 当天/当时的时间,包括当天的年月日,当时的时分秒。
2. 时间的前后推算。
例如:了解前一天,前N天的日期。后一天,后N天的日期。
3. 随着区域化的产生,时间也有不同区域的要求。
对于不同的区域显示的时间是不一致的,但是他们的时间差是一直的。
4. 时间的展示方式多种多样。常用的格式主要有”YYYY-MM-DD HH:MM:SS”,
”YYYY/MM/DD HH:MM:SS” 等。格式之间的转换也显得越来越需要。
常见的转换:时间戳与时间字符的转换。
5. 日期见的差异及比较是非常需要的。
经常我们会问日期A与日期B相差几天。类似的差异很多。
6. 特殊日期的处理。例如闰年的处理。
我采用PHP语言来探讨下有关程序中的时间。
为了满足以上提出的功能,PHP自身有些基本的时间函数。
而这些函数并不能直接解决上述问题,需要对这些函数进行封装及相关的处理。
PHP常用的函数有哪些?
1. inttime( void ) 获取当前的时间
2. stringdate ( string $format [, int$timestamp ] )获取日期
3. mktime时间的前后推算
4. strtotime字符串转换成时间戳
5. microtime精确到微妙的日期函数
6 localtime 获取本地的时间
而这几个简单的函数有什么怎么组合来满足我们日常的运用的?
或者扩展我们的运用的?
以下我给出一些简易的代码实现。(详细的代码见Date.class.php文件)
/**
* 获取当前的时间
*/
public function getDate(){
return time();
}
/**
* 获取N周前的日期
*/
public function getBeforeWeekDate($n){
return date("Y-m-d",mktime(0,0,0,date("m"),date("d")-7*$n,date("Y")));
}
/**
* 获取N月前的日期
*/
public function getBeforeMonthDate($n){
return date("Y-m-d",mktime(0,0,0,date("m")-$n,date("d"),date("Y")));
}
/**
* 获取两个日期之间的日期
*/
function datesInBetween($date1, $date2){
$day = 60*60*24;
$date1 = strtotime($date1);
$date2 = strtotime($date2);
$days_diff = round(($date2 - $date1)/$day);
$dates_array = array();
$dates_array[] = date('Y-m-d',$date1);
for($x = 1; $x < $days_diff; $x++){
$dates_array[] = date('Y-m-d',($date1+($day*$x)));
}
$dates_array[] = date('Y-m-d',$date2);
return $dates_array;
}
ps:
真心不喜欢CSDN采用这种资源的统一管理方式。太浪费时间了。
上传一个简单的文档都非常的麻烦。这样的效率太低下了。
希望CSDN能在这方面有所改善。
参考文献:
1.时间的JS文件。
Datepicker
2.日期转换。
http://tool.chinaz.com/Tools/unixtime.aspx
3.Php中文手册
http://download.csdn.net/detail/shupan/5281934
这些在我的资源中可以免费下载。