想写一个时间戳转换成日期的函数,锻炼下自己的算法,呵呵。
函数代码:
1
function timestamp( $year, $month = 1, $day = 1, $hour = 0, $minute = 0, $sec = 0 ) {
2
$tmp = ( $year - 1973 - ( $year -1973 ) % 4 ) / 4 * 126230400 + ($year - 1973) % 4 * 31536000 + 94608000;
3
$monthday = array( 0, 2678400, 5097600, 7776000, 10368000, 13046400, 15638400, 18316800, 20995200, 23587200, 26265600, 28857600 );
4
if ( $year % 4 == 0 && $month > 2 ) {
5
$tmp += $monthday[$month-1] + 86400 + $day * 86400 + $hour * 3600 + $minute * 60 + $sec;
6
return $tmp;
7
}
8
$tmp += $monthday[$month-1] + $day * 86400 + $hour * 3600 + $minute * 60 + $sec;
9
return $tmp;
10
}
运行测试:
1
$time = 1207101503;
2
echo timestamp( 2008, 4, 2, 10 );
3
echo "\n";
4
echo gmdate( "Y-m-d H:i:s", timestamp( 2008, 4, 2, 10 ) );
posted on 2008-06-23 10:49
xxxx 阅读(3063)
评论(0) 编辑 收藏 引用 网摘 所属分类:
PHP