js和jQuery几分钟前就实现了,几小时前,几天前。

js和jQuery几分钟前就实现了,几小时前,几天前。
要实现类似的功能,js可以使用,实现方法如下:

1。javascript函数实现:
例1:
复制代码代码如下所示:
函数:
var分钟= 1000×60;
var小时=分钟* 60;
var日=小时* 24;
无功halfamonth =天* 15;
var月份=日* 30;
功能getdatediff(datetimestamp){
Var now = new Date ().GetTime ();
无功diffvalue =现在- dateTimeStamp;
如果(diffvalue<0){
如果日期不符合弹出窗口
()结束日期不能少于起始日期!;
}
无功monthc = diffvalue /月;
无功weekc = diffvalue /(7天);
无功dayc = diffvalue /天;
无功hourc = diffvalue /小时;
VaR明克= diffvalue /分钟;
如果(monthc > = 1){
结果=发表+ parseInt(monthc)+一个月前;
}
如果(weekc > = 1){
结果=发表+ parseInt(weekc)+星期;
}
如果(dayc > = 1){
结果=发表+ parseInt(dayc)+前一天;
}
如果(hourc > = 1){
结果=发表+ parseInt(hourc)+一小时前;
}
如果(MINC > = 1){
结果=发表+ parseInt(MINC)前的+分钟;
}其他
结果刚刚发布;
返回结果;
}
如果您得到的时间格式不是时间戳,您可以使用下面的Javascript函数将字符串转换为时间戳。这个函数的功能相当于strtotime JS版:
复制代码代码如下所示:
函数代码:字符串转换到时间戳
功能getdatetimestamp(中){
返回date.parse(datestr.replace( / / GI, / ));
}
例2:
复制代码代码如下所示:

功能jsdatediff(发表时间){
无功d_minutes,d_hours,d_days;
VaR办法= parseInt(新的日期()GetTime() / 1000);
VaR D;
a办法-发表时间;
d_days = parseInt(D / 86400);
d_hours = parseInt(D / 3600);
d_minutes = parseInt(D / 60);
如果(d_days > 0 d_days<4){
返回d_days +前一天;
} else if(d_days0){
返回d_hours +小时;
} else if(d_hours0){
返回d_minutes +分钟;
其他{ }
var =新的日期(发表时间×1000);
s.getfullyear(+) / ;
返回(s.getmonth()+ 1)+月+ s.getdate()+天;
}
}
二、jQuery插件的实现

HTML代码:
复制代码代码如下所示:
>
调用代码:
复制代码代码如下所示:
jQuery(的跨越。Timeago )Timeago();
插入源代码:
复制代码代码如下所示:
(函数(工厂){)
如果(typeof定义= 'function'define。AMD){
注册为匿名模块。和/ AMD。
定义({ 'jquery},厂);
{人}
浏览器 / /全局
工厂(jQuery);
}
}(函数($){
美元。Timeago =功能(时间戳){
如果(时间戳是日期){
返回的话(时间戳);
} else if(typeof timestamp =字符串){
换言之,收益($。timeago.parse(时间戳));
} else if(typeof timestamp =数){
返回的话(新的日期(时间戳));
{人}
换言之,收益($。timeago.datetime(时间戳));
}
};
var $ T =美元的事;

美元。延长的事,{(美元。
设置:{
RefreshMillis:60000,
allowfuture:假,
localetitle:假,
截止时间:0,
字符串:{
prefixago:空,
prefixfromnow:空,
suffixago:在
suffixfromnow:从现在
秒:1分钟
分钟:1分钟
分钟:%d分钟
小时:1小时
小时:%d小时
一天:1天
日期:%d天
月:一月
月份:%d个月
年份:1年
年份:%d年
wordseparator:
编号:{ }
}
},
换言之:功能(distancemillis){
var = this.settings.strings美元;
var前缀= l.prefixago美元;
VaR的后缀= $ l.suffixago;
如果(这个设置。allowfuture){
如果(distancemillis<0){
前缀= l.prefixfromnow美元;
后缀= $ l.suffixfromnow;
}
}

VaR秒= math.abs(distancemillis) / 1000;
var分钟=秒 60;
var小时=分钟/ 60;
var天=小时24;
var年=日 365;

功能替代(stringorfunction,数){
字符串值=美元。功能(stringorfunction)stringorfunction(数量、distancemillis):stringorfunction;
var =价值(美元l.numbers l.numbers {数量}美元)| |数;
返回string.replace( / /我%d,值);
}

VaR的话=替代(美元l.seconds,秒<45 math.round(秒)| |)
< 90秒(l.minute替代美元,1)| |
分钟替补($ l.minutes<45,Math.round(分钟)| |)
< 90分钟替补(l.hour美元,1)| |
小时的替代品($ l.hours<24,Math.round(小时)| |)
小时<42替代(L.day美元,1)| |
天替代(美元l.days<30,Math.round(日)| |)
< 45天(l.month替代美元,1)| |
天(l.months替代美元,math.round<365(天/ 30)| |)
年<< 1.5替代(l.year美元,1)| |
(l.years替代美元,Math.round(年));

VaR分离器= l.wordseparator美元| | ;
如果($ l.wordseparator = undefined){分离器}=;
返回$({前缀,单词,后缀},联接(分隔符));
},
解析:功能(ISO8601){
var =美元。修剪(ISO8601);
S =更换( / , D + /,删除 / /毫秒);
S =更换( / / (更换) / / / ,);
S =更换( / / )。更换( / z /,UTC);
(S =更换/({ + - } D D):( / D)1美元2美元); / / - 04:00 -> 0400
返回新日期(s);
},
日期:功能(元){
VaR ISO8601 = t.istime(元)美元美元(元)。Attr(时间):$(元)。Attr(标题);
返回的t.parse(ISO8601);
},
即:功能(元){
jQuery的不在伊江很好地发挥HTML5的作用
返回$(元),(0)(。tagname。toLowerCase); / / = = = $(元),(时间);
}
});

功能,可以称为 / /通过$(EL)Timeago('action)。
当没有动作时,init是默认的。
函数被调用与单个元素的上下文。
var函数{ {
init:函数(){
无功refresh_el =美元。代理(刷新,这);
refresh_el();
VaR的t.settings美元美元;
如果($ s.refreshmillis > 0){
setInterval(refresh_el,s.refreshmillis美元);
}
},
更新:函数(时间){
$(这)。数据('timeago,{日期:t.parse美元(时间)});
Refresh.apply(本);
},
updatefromdom:函数(){
$(这)。数据('timeago,{日期:t.parse美元(美元t.istime(这)$(这)。Attr(时间):$(this)。attr)});
Refresh.apply(本);
}
};

美元。fn.timeago =功能(动作选项){
var fn =动作功能:functions.init {action};
如果(!FN){
把新的错误(未知的函数名称+动作+ 事);
}
这里的每个对象和调用所请求的函数
this.each(函数(){()
fn.call(这个选项);
});
返回此;
};

函数刷新(){
VaR数据= prepareData(本);
VaR的t.settings美元美元;

如果(!IsNaN(数据的时间)){
如果($ s.cutoff = 0 | |距离(数据的时间)< s.cutoff美元){
$(这)。文本(换言之,(数据的时间));
}
}
返回此;
}

功能prepareData(元){
元素= $(元素);
如果(!element.data(事)){
element.data(事
var text =美元。修剪(element.text());
如果(t.settings美元。localetitle){
element.attr(标题
} else if(text.length > 0!(t.istime美元(元)element.attr(标题))){
element.attr(标题
}
}
返回element.data(事);
}

功能的话(日期){
返回的t.inwords(距离(日期));
}

函数距离(日期){
返回(新的日期()GetTime()- date.gettime());
}

IE6 suckage / /修复
document.createelement(简称);
document.createelement();
});
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部