本文用作笔记记录,方便自己查找
时间戳可以加秒数来增加时间 如加一天为 时间戳+60*60*24
js:
//增加天数
Date.prototype.addDays = function (d) {
this.setDate(this.getDate() + d);
};
//增加星期数
Date.prototype.addWeeks = function (w) {
this.addDays(w * 7);
};
//增加月份
Date.prototype.addMonths = function (m) {
var d = this.getDate();
this.setMonth(this.getMonth() + m);
if (this.getDate() < d)
this.setDate(0);
};
//增加年份
Date.prototype.addYears = function (y) {
var m = this.getMonth();
this.setFullYear(this.getFullYear() + y);
if (m < this.getMonth()) {
this.setDate(0);
}
};
//获取时间季度
Date.prototype.getQuarter = function(){
return Math.floor( this.getMonth() / 3 + 1);
}
//计算两日期间所有季度
function year_quarter(begin,end) {
var year_quarter = new Array();
var begindate = new Date( begin.replace(/-/g,'/'));
var enddate = new Date(end.replace(/-/g,'/'));
var beginyear = begindate.getFullYear();
var endyear = enddate.getFullYear();
var tempdate = begindate;
for( var i = beginyear;i<=endyear;i++){
var j = 1;
if(i == beginyear){
j = begindate.getQuarter();
}
for (j;j<=4;j++){
if( -1== year_quarter.indexOf(tempdate.getFullYear() +'-'+tempdate.getQuarter())){
year_quarter.push(tempdate.getFullYear() +'-'+tempdate.getQuarter());
}
if(j == enddate.getQuarter()
&& i == enddate.getFullYear()){
break;
}
tempdate.addMonths(3); //下一个季度
}
}
return year_quarter;
}
//时间间隔 数
Date.prototype.diffOf = function(lateDate){
var lateTime = lateDate;
if(!lateDate instanceof Date){
lateTime = new Date(Date.parse(lateDate.replace(/-/g, "/"))).getTime();
}
var dates = (lateTime - this) /(1000*60*60*24);
return dates;
}
//日期格式化
Date.prototype.format = function(format) {
var date = {
"M+": this.getMonth() + 1,
"d+": this.getDate(),
"h+": this.getHours(),
"m+": this.getMinutes(),
"s+": this.getSeconds(),
"q+": Math.floor((this.getMonth() + 3) / 3),
"S+": this.getMilliseconds()
};
if (/(y+)/i.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (var k in date) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1
? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
}
}
return format;
}
php:
//返回格式化(Y-m-d H:i:s)的时间
if(!function_exists('GetDateTime'))
{
function GetDateTime($mktime)
{
return empty($mktime)?"":MyDate('Y-m-d H:i:s',$mktime);
}
}
//返回格式化(Y-m-d)的日期
if(!function_exists('GetDateMk'))
{
function GetDateMk($mktime)
{
return MyDate('Y-m-d', $mktime);
}
}
//计算两个时间差并返回差多少天、时、分、秒
if(!function_exists('timediff')){
function timediff($begin_time,$end_time){
if($begin_time < $end_time){
$starttime = $begin_time;
$endtime = $end_time;
}else{
$starttime = $end_time;
$endtime = $begin_time;
}
$timediff = $endtime-$starttime;
$days = intval($timediff/86400);
$remain = $timediff%86400;
$hours = intval($remain/3600);
$remain = $remain%3600;
$mins = intval($remain/60);
$secs = $remain%60;
$res = array("day" => $days,"hour" => $hours,"min" => $mins,"sec" => $secs);
return $res;
}
}
//从普通时间转换为Linux时间截
if(!function_exists('GetMkTime'))
{
function GetMkTime($dtime)
{
if(!preg_match("/[^0-9]/", $dtime))
{
return $dtime;
}
$dtime = trim($dtime);
$dt = array(1970, 1, 1, 0, 0, 0);
$dtime = preg_replace("/[\r\n\t]|日|秒/", " ", $dtime);
$dtime = str_replace("年", "-", $dtime);
$dtime = str_replace("月", "-", $dtime);
$dtime = str_replace("时", ":", $dtime);
$dtime = str_replace("分", ":", $dtime);
$dtime = trim(preg_replace("/[ ]{1,}/", " ", $dtime));
$ds = explode(" ", $dtime);
$ymd = explode("-", $ds[0]);
if(!isset($ymd[1])) $ymd = explode(".", $ds[0]);
if(isset($ymd[0])) $dt[0] = $ymd[0];
if(isset($ymd[1])) $dt[1] = $ymd[1];
if(isset($ymd[2])) $dt[2] = $ymd[2];
if(strlen($dt[0])==2) $dt[0] = '20'.$dt[0];
if(isset($ds[1]))
{
$hms = explode(":", $ds[1]);
if(isset($hms[0])) $dt[3] = $hms[0];
if(isset($hms[1])) $dt[4] = $hms[1];
if(isset($hms[2])) $dt[5] = $hms[2];
}
foreach($dt as $k=>$v)
{
$v = preg_replace("/^0{1,}/", '', trim($v));
if($v == '')
{
$dt[$k] = 0;
}
}
$mt = mktime($dt[3], $dt[4], $dt[5], $dt[1], $dt[2], $dt[0]);
if(!empty($mt)) return $mt;
else return time();
}
}
//字符串日期、时间戳,格式化
function dateformat($datestr,$format="Y-m-d"){
if( preg_match("/\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}/",$datestr)
or preg_match("/\\d{4}-\\d{2}-\\d{2}/",$datestr) ){
if($datestr=="" || $datestr == "0000-00-00 00:00:00" ){
return "";
}else{
return date_format( date_create($datestr),$format);
}
}else if(is_numeric($datestr)){
return date($format,$datestr);
}else{
return "";
}
}
用户今天 : 3
用户昨天 : 15
用户最近的7天 : 69
用户最近的30天 : 283
用户这个月 : 229
用户这一年 : 4357
合计用户 : 6149
查看今天 : 7
查看昨天 : 15
查看最近7天 : 74
查看最近30天的 : 306
查看这个月 : 242
查看这一年 : 4829
合计查看 : 7484
谁是在线的 : 0