时间戳转几周前

本文介绍了一个实用的JavaScript函数,用于计算两个时间戳之间的差异,并以人类易读的格式返回结果,如“1小时前”或“刚刚”。该函数考虑了多种时间单位,包括分钟、小时、天、周和月。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function getDateDiff(dateTimeStamp){
        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){
            result="" + parseInt(monthC) + "月前";
        }
        else if(weekC>=1){
            result="" + parseInt(weekC) + "周前";
        }
        else if(dayC>=1){
            result=""+ parseInt(dayC) +"天前";
        }
        else if(hourC>=1){
            result=""+ parseInt(hourC) +"小时前";
        }
        else if(minC>=1){
            result=""+ parseInt(minC) +"分钟前";
        }else
        result="刚刚";
        return result;
    }
GPS周秒通常是指全球定位系统(GPS)的时间表示,它包含了自GPS历元1980年1月6日开始以来经过了多少整周以及从该周的第几天和多少秒。而时间戳则是一种通用的、基于计算机系统的日期和时间表示法,通常是自某个固定点(如1970年1月1日Unix时间纪元)以来的秒数。 在C#中,将GPS周秒换成时间戳,你可以这样做: ```csharp using System; using System.Globalization; public static DateTime GpsWeekSecondsToTimestamp(double gpsWeek, double gpsSecondsOfWeek) { // GPS历元到1980-01-06 UTC的秒差 const long gpsEpochOffset = 621950400; // (Jan 6, 1980 at midnight in seconds since Unix epoch) // GPS一周等于86400秒 const int gpsDayInSeconds = 86400; // 计算总秒数 long totalSeconds = (long)gpsWeek * gpsDayInSeconds + (int)gpsSecondsOfWeek; // 加上GPS历元偏移 return new DateTime(1980, 1, 6, 0, 0, 0, DateTimeKind.Utc).AddSeconds(totalSeconds + gpsEpochOffset); } ``` 要将时间戳换回GPS周秒,可以逆向操作: ```csharp public static (double gpsWeek, double gpsSecondsOfWeek) TimestampToGpsWeekSeconds(DateTime timestamp) { // 获取Unix时间纪元 DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); // 求差值得到总秒数 long totalSeconds = (timestamp - unixEpoch).TotalSeconds; // 减去GPS历元偏移并计算周数和剩余秒数 long gpsEpochOffset = 621950400; long weeks = (totalSeconds - gpsEpochOffset) / gpsDayInSeconds; long remainingSeconds = (totalSeconds - gpsEpochOffset) % gpsDayInSeconds; return (weeks, remainingSeconds); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值