JavaScript Date(日期)对象:
1、Date() ------获得当日的日期
2、getTime() ------返回从 1970 年 1 月 1 日至今的毫秒数。
1、获取当前时间
var myDate = new Date() ------获取系统当前时间
复制代码
2、获取特定格式的时间
myDate.getYear() ------获取当前年份(2位)
myDate.getFullYear() ------获取完整的年份(4位,1970-????)
myDate.getMonth() ------获取当前月份(0-11,0代表1月)
myDate.getDate() ------获取当前日(1-31)
myDate.getDay() ------获取当前星期X(0-6,0代表星期天)
myDate.getTime() ------获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours() ------获取当前小时数(0-23)
myDate.getMinutes() ------获取当前分钟数(0-59)
myDate.getSeconds() ------获取当前秒数(0-59)
myDate.getMilliseconds() ------获取当前毫秒数(0-999)
myDate.toLocaleDateString() ------获取当前日期
myDate.toLocaleTimeString() ------获取当前时间
myDate.toLocaleString() ------获取日期与时间
复制代码
3、js 获取当前时间毫秒:
第一种方法:
var timestamp =Date.parse(new Date());
复制代码
得到的结果:1280977330000 ,注意:这里得到的结果将后三位(毫秒)转换成了000显示,使用时可能会出现问题。例如动态添加页面元素id的时候,不建议使用。
第二种方法:
var timestamp =(new Date()).valueOf();
复制代码
结果:1280977330748
第三种方法:
var timestamp=new Date().getTime();
复制代码
结果:1280977330748
js中单独调用new Date(),例如document.write(new Date());
显示的结果是:Mar 31 10:10:43 UTC+0800 2012 这种格式的时间
但是用new Date() 参与计算会自动转换为从1970.1.1开始的毫秒数。
组件1:发布时间到当前时间的时间差(页面刷新:几分钟前)
方法1(基本原理):
/*****发布时间到当前时间的时间差(页面刷新:几分钟前)******/
getDateDiff : function(dateTimeStam){
var timeResult;//需要返回的值
var dateTimeStamp=dateTimeStam.getTime();//传入日期秒数化
var minute = 1000 * 60;
var hour = minute * 60;
var day = hour * 24;
var halfamonth = day * 15;
var month = day * 30;
var now = new Date().getTime();//获取当前时间的秒数
var diffValue = now - dateTimeStamp;
if(diffValue < 0){return;}
var monthC =diffValue/month;
var weekC =diffValue/(7*day);
var dayC =diffValue/day;
var hourC =diffValue/hour;
var minC =diffValue/minute;
if(monthC>=1){
timeResult="" + parseInt(monthC) + "个月前";
}
else if(weekC>=1){
timeResult="" + parseInt(weekC) + "周前";
}
else if(dayC>=1){
timeResult=""+ parseInt(dayC) +"天前";
}
else if(hourC>=1){
timeResult=""+ parseInt(hourC) +"小时前";
}
else if(minC>=1){
timeResult=""+ parseInt(minC) +"分钟前";
}else{
timeResult="刚刚";
}
return timeResult;
}
复制代码
方法2(写在vue项目的公用组件中):
String.prototype.parseTime = function(currentDate){
//String.prototype用于为某字符串对象新增方法
var now = currentDate ? currentDate.getTime() : new Date().getTime(),//获取当前时间的秒数
target = new Date(Date.parse(this.replace(/\-/g,"/").replace(/\.0/g,""))).getTime(),//获取传入时间的秒数
//
diffValue = now - target,
result='',
minute = 1000 * 60,
hour = minute * 60,
day = hour * 24,
halfamonth = day * 15,
month = day * 30,
year = month * 12,
_year = diffValue/year,
_month =diffValue/month,
_day =diffValue/day,
_hour =diffValue/hour,
_min =diffValue/minute,
_min_target = _min%60 > 0 ? _min%60 : 0 ;
if(_day>=1) {
result=parseInt(_day) +"天前";
} else if(_hour>=1) {
result=parseInt(_hour) +"小时前";
}else if(_min>=1) {
result=parseInt(_min_target) +"分钟前";
}else {
result = '刚刚';
}
return result;
};
复制代码