js时间各种处理

时间戳转formdate格式 13 || 16 位

    function timeStampToFormdate(timestamp) {
        if (!timestamp) {
            return ''
        }
        var date = timestamp.toString().length == "13" ? new Date(timestamp) : new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
        var Y = date.getFullYear() + "-";
        var M = (date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1) + "-";
        var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate());
        var h = date.getHours() < 10 ? "0" + date.getHours() + ":" : date.getHours() + ":";
        var m = date.getMinutes() < 10 ? "0" + date.getMinutes() + ':' : date.getMinutes() + ":";
        var s = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
        return Y + M + D + ' ' + h + m + s;
    }
    console.log(timeStampToFormdate(new Date().getTime()));

获取距离当前时间多少天前的时间

 function manyDayBeforeNowDay(days) {
        if (days * 1) {
            return timeStampToFormdate(new Date().getTime() - days * 60 * 60 * 24 * 1000)
        } else {
            return ''
        }
    }
    console.log(manyDayBeforeNowDay(2));

时间格式化返回年月日时分秒 格式自己拼

/**
*如果没有传入时间,就返回当前时间的格式化数据
*/
function dateFormat(date) {
!date && date=new Date();
  if (date) {
    let newDate = new Date(date);
    let n = newDate.getFullYear();
    let y = (newDate.getMonth() + 1 < 10 ? '0' + (newDate.getMonth() + 1) : newDate.getMonth() + 1);
    let r = (newDate.getDate() < 10 ? '0' + newDate.getDate() : newDate.getDate());
    let s = (newDate.getHours() < 10 ? '0' + newDate.getHours() : newDate.getHours());
    let f = (newDate.getMinutes() < 10 ? '0' + newDate.getMinutes() : newDate.getMinutes());
    let m = (newDate.getSeconds() < 10 ? '0' + newDate.getSeconds() : newDate.getSeconds());
    let format = {
      n: n,
      y: y,
      r: r,
      s: s,
      f: f,
      m: m,
    }
    return format
  }
}

获取当前星期几

function getWeekDate() {
  var now = new Date();
  var day = now.getDay();
  var weeks = new Array(
    "星期日",
    "星期一",
    "星期二",
    "星期三",
    "星期四",
    "星期五",
    "星期六"
  );
  var week = weeks[day];
  return week;
}

根据当前年的第几天 获取所在的日期

/**
 * @param {Number} year 哪年
 * @param {Number} day  哪天
 */
function dayToMD(year, day) {
  if (year && day && day < 367) {
    var isrunnian = (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
    var rules = [31, isrunnian ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    for (var i = 0; i < rules.length; i++) {
      if (rules[i] >= day) {
        return (i + 1 < 10 ? ("0" + (i + 1)) : (i + 1)) + '-' + (day < 10 ? ("0" + day) : day);
      }
      day -= rules[i];
    }
  }
}

获取所在周

记录一下 ,计算规则比较怪。产品这么要求,╮(╯▽╰)╭

/**
 * 获取当前天所在的周
 * 规则:按照日历上一行为一周。以当前年第一个周一所在的日期为当前年的起点
 * 如果当前日期>=起点,计算公式:Math.ceil((当前天数-(起点-1))/7)
 * 如果当前日期<起点 ,计算公式:Math.ceil((上一年的天数-(上一年起点-1)+当前日期天数)/7)
 * 返回结果 2020-1  2020年第几周
 * 头秃
 */

function weekFilter() {
  function yearDays(leapY) {
    var strleapYis =
      (leapY % 4 == 0 && leapY % 100 != 0) || leapY % 400 == 0;
    if (strleapYis) {
      strleapYis = 366;
    } else {
      strleapYis = 365;
    }
    return strleapYis;
  }
  function getWeekDay(year) {
    var d = new Date();
    d.setFullYear(year, 0);
    for (var i = 1; i <= 31; i++) {
      d.setDate(i);
      if (d.getDay() == 1) break;
    }
    d.setFullYear(year, 0, i);
    // return year + "-" + "01-" + (i >= 10 ? i :( "0" + i));
    return i;
  }
  let nowDay = Math.ceil(
    (new Date() - new Date(new Date().getFullYear().toString())) /
      (24 * 60 * 60 * 1000)
  );
  let nowYear = new Date().getFullYear();
  let nowWeek;
  if (nowDay >= getWeekDay(nowYear)) {
    nowWeek = Math.ceil((nowDay - (getWeekDay(nowYear) - 1)) / 7);
    return `${nowYear}-${nowWeek}`
  } else {
    nowWeek = Math.ceil(
      (yearDays(nowYear - 1) - (getWeekDay(nowYear - 1) - 1) + nowDay) / 7
    );
    return `${nowYear - 1}-${nowWeek}`
  }
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以使用 JavaScript 中的 Date 对象来处理时间戳。例如: ``` let timestamp = 1609459200; let date = new Date(timestamp * 1000); console.log(date.toLocaleString()); ``` 上面代码将 timestamp (单为秒) 转换为毫秒,再使用 Date 对象处理。输出结果为:"2022/12/31 16:00:00"。 可以使用 `toLocaleString()` 将日期时间格式化为本地格式,也可以使用其它方法如 `toDateString()`, `toUTCString()`等来格式化日期。 ### 回答2: JavaScript可以通过内置的Date对象将时间戳转换成日期和时间时间戳是一个表示时间的数字,它表示从Unix纪元(格林尼治时间1970年1月1日00:00:00)开始经过的毫秒数。 要将时间戳转换成日期和时间,可以使用Date对象的构造函数,并将时间戳作为参数传递给它。例如: ```javascript var timestamp = 1632147600000; // 假设时间戳为2021年9月20日12:00:00 var date = new Date(timestamp); console.log(date); ``` 这将输出: ``` Mon Sep 20 2021 12:00:00 GMT+0800 (中国标准时间) ``` 根据需要,你可以使用Date对象的各种方法来获取特定的日期和时间信息。例如,可以使用getFullYear()方法获取年份、getMonth()方法获取月份(0表示一月,11表示十二月)、getDate()方法获取日期、getHours()方法获取小时、getMinutes()方法获取分钟等等。 ```javascript var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); var hour = date.getHours(); var minute = date.getMinutes(); ``` 这些方法返回的都是整数值,你可以根据需要进行进一步的格式化。 通过这种方式,你可以将时间戳转换成人类可读的日期和时间格式,以便在开发应用程序时更好地处理和显示时间。 ### 回答3: 在JavaScript中,我们可以通过使用内置的Date对象来将时间戳处理为日期时间时间戳是指自1970年1月1日午夜(格林尼治时间)以来所经过的毫秒数。 要将时间戳转换为日期时间,可以创建一个新的Date对象并将时间戳作为参数传递给它。例如,假设我们有一个时间戳变量timestamp,我们可以使用以下代码将其转换为日期时间: ```javascript var timestamp = 1596402098000; var date = new Date(timestamp); console.log(date); // 输出:Tue Aug 04 2020 15:14:48 GMT+0800 (中国标准时间) ``` 在这个例子中,我们创建了一个新的Date对象,并将时间戳1596402098000作为参数传递给它。然后,我们可以使用console.log()函数来打印结果,它将给出转换后的日期时间。 需要注意的是,输出的日期时间格式可能会根据您所在的时区和浏览器设置而有所不同。上面的例子中,日期时间的输出包含了时区信息(中国标准时间)。 除了使用Date对象,您还可以使用一些JavaScript库,如Moment.js处理日期和时间。这些库提供了更多丰富的功能和格式化选项,使日期和时间处理更加便捷。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值