时间(时间戳格式)转换为几秒前、几分钟前、几小时前、几天前、几星期前、几个月前、几年前

//datetime 格式为2019-11-22 12:23:59样式
//将时间转换成几天前,几个月前,几小时前等
function timeago(datetime) { //dateTimeStamp是一个时间毫秒,注意时间戳是秒的形式,在这个毫秒的基础上除以1000,就是十位数的时间戳。13位数的都是时间毫秒。
        var dateTimeStamp = Date.parse(datetime.replace(/-/gi, "/"));
        var minute = 1000 * 60; //把分,时,天,周,半个月,一个月用毫秒表示
        var hour = minute * 60;
        var day = hour * 24;
        var week = day * 7;
        var halfamonth = day * 15;
        var month = day * 30;
        var now = new Date().getTime(); //获取当前时间毫秒
        var diffValue = now - dateTimeStamp; //时间差
        if (diffValue < 0) {
            return '刚刚';
        }
        var minC = diffValue / minute; //计算时间差的分,时,天,周,月
        var hourC = diffValue / hour;
        var dayC = diffValue / day;
        var weekC = diffValue / week;
        var monthC = diffValue / month;
        var result = "2";
        if (monthC >= 1 && monthC <= 3) {
            result = " " + parseInt(monthC) + "月前"
        } else if (weekC >= 1 && weekC <= 4) {
            result = " " + parseInt(weekC) + "周前"
        } else if (dayC >= 1 && dayC <= 6) {
            result = " " + parseInt(dayC) + "天前"
        } else if (hourC >= 1 && hourC <= 23) {
            result = " " + parseInt(hourC) + "小时前"
        } else if (minC >= 1 && minC <= 59) {
            result = " " + parseInt(minC) + "分钟前"
        } else if (diffValue >= 0 && diffValue <= minute) {
            result = "刚刚"
        } else {
            var datetime = new Date();
            datetime.setTime(dateTimeStamp);
            var Nyear = datetime.getFullYear(); {}
            var Nmonth = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
            var Ndate = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
            var Nhour = datetime.getHours() < 10 ? "0" + datetime.getHours() : datetime.getHours();
            var Nminute = datetime.getMinutes() < 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
            var Nsecond = datetime.getSeconds() < 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
            result = Nyear + "-" + Nmonth + "-" + Ndate
        }
        return result;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 JavaScript 中的 Date 对象来将时间转换为"几天几时几分几秒"。可以使用 Date 构造函数将时间传入,然后使用 getUTCDate、getUTCHours、getUTCMinutes、getUTCSeconds 方法分别获取天、小时、分钟、秒。代码示例如下: ```js var timestamp = 1623471235; var date = new Date(timestamp * 1000); var days = date.getUTCDate() - 1; var hours = date.getUTCHours(); var minutes = date.getUTCMinutes(); var seconds = date.getUTCSeconds(); console.log(days + "天" + hours + "时" + minutes + "分" + seconds + "秒"); ``` 其中 timestamp 是时间。 需要注意的是,JS中的时间是毫秒为单位的,所以需要将时间乘1000。 ### 回答2: 在JavaScript中,我们可以使用内置的Date对象来将时间转换为"几天几时几分几秒"的形式。 首先,我们需要将时间转换为Date对象。可以使用`new Date(timeStamp)`来实现,其中`timeStamp`是要转换时间。 然后,我们可以使用Date对象的方法来获取对应的年、月、日、时、分、秒等信息。例如,`getDate()`获取月份中的日期,`getHours()`获取小时数,以此类推。 接下来,我们可以根据获取到的信息来计算出"几天几时几分几秒"的形式。这可以通过使用除法和取模(%)操作符来实现。 以下是一个示例代码: ```javascript function timeStampToDuration(timeStamp) { var time = new Date(timeStamp); var days = Math.floor(time / (24 * 3600 * 1000)); // 计算天数 var hours = Math.floor((time % (24 * 3600 * 1000)) / (3600 * 1000)); // 计算小时数 var minutes = Math.floor((time % (3600 * 1000)) / (60 * 1000)); // 计算分钟数 var seconds = Math.floor((time % (60 * 1000)) / 1000); // 计算秒数 return days + "天" + hours + "时" + minutes + "分" + seconds + "秒"; } var timeStamp = 1618500640000; // 假设时间为此值 console.log(timeStampToDuration(timeStamp)); // 输出: "18天15时30分40秒" ``` 以上代码将时间`1618500640000`转换为"18天15时30分40秒"的形式,并将结果输出到控制台。 ### 回答3: JavaScript中可以使用内置的Date对象将时间转换为"几天几时几分几秒"。 我们可以创建一个函数来实现这个转换。首先,我们将时间转换为毫秒数,并将其传递给Date对象。然后,我们可以使用Date对象提供的方法获取相关的时间信息,包括天数、小时数、分钟数和秒数。最后,我们将这些时间信息拼接成所需的格式。 下面是一个示例代码: ```javascript function convertTimestamp(timestamp) { var seconds = Math.floor(timestamp / 1000); var minutes = Math.floor(seconds / 60); var hours = Math.floor(minutes / 60); var days = Math.floor(hours / 24); seconds %= 60; minutes %= 60; hours %= 24; var result = days + "天 " + hours + "小时 " + minutes + "分 " + seconds + "秒"; return result; } var timestamp = 1595446981000; var convertedTime = convertTimestamp(timestamp); console.log(convertedTime); ``` 这样,我们就可以将时间`1595446981000`转换为"18天 19小时 16分 21秒"。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值