js 时间处理

哈哈哈
• 阅读 1529

时间戳转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}`
  }
}
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Wesley13 Wesley13
3年前
mysql简单常用语句汇总
1\.常用函数uuid和时间戳SELECTUUID(),UNIX_TIMESTAMP();将时间戳转为日期格式FROM_UNIXTIME(mw.created_at,'%Y%m%d%H:%i:%s')设置参数select@m_no:max(m_no)fromvc_m;set@m
Stella981 Stella981
3年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Stella981 Stella981
3年前
HIVE 时间操作函数
日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec
Stella981 Stella981
3年前
Impala常用函数索引
增加X自然天selectdays_add(now(),2)字符串转Timestampselectto\_timestamp('2019101420:00:01','yyyyMMddHH:mm:ss');注意,Impala的timestamp的标准是ISO8601 参考:https://en.wiki
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
哈哈哈
哈哈哈
Lv1
能够慢慢培养的不是感情而是习惯
文章
1
粉丝
3
获赞
3
热门文章

暂无数据