获取指定的时间格式

function GformatTime(time,format){
let timeIsObject = false;// 如果两个参数都为空则,全部采用默认if(typeof _format === 'undefined' && typeof _time === 'undefined'){timeIsObject = true;_format = 'Y-m-d H:i:s';_time = new Date();}else if(!_format){_format = 'Y-m-d H:i:s';}else if(_format && typeof _time === 'undefined'){// // 判断下_str 是不是位于10至12位的纯阿拉伯数字,如果是转为毫秒时间戳// if(/^[1-9]\d{9,11}$/.test(_format)){//     _format*=1000;// }if(new Date(_format).toString() === 'Invalid Date'){timeIsObject = true;_time = new Date();}else{_time = _format;_format = 'Y-m-d H:i:s';}}if(!timeIsObject){try{//  // 判断下_str 是不是位于10至12位的纯阿拉伯数字,如果是转为毫秒时间戳// if(/^[1-9]\d{9,11}$/.test(_time)){//     _time*=1000;// }_time = new Date(_time);if(_time.toString() === 'Invalid Date' || _time.toLocaleDateString() === '1970/1/1'){_time = new Date(null);}} catch(error) {_time = new Date();}}// 得到"Wed Apr 07 2021" => ['Wed','Apr','07','2021']let dateString = _time.toDateString().split(' ');// 补位函数let strPad = function(v,len = 2){let vLen = v.toString().length;if(vLen < len){for(let i = len-vLen; i > 0; i--){v = '0'+v;}}return v;}let result = [],temp;let len = _format.length;for(let ii = 0; ii < len; ii++){if(_format[ii] === '\\'){result.push(_format[++ii]);continue;}switch(_format[ii]){case 'd':// 一个月中的第几天(从 01 到 31)result.push(strPad(_time.getDate()));break;case 'D':// 星期几的文本表示(用三个字母表示)result.push(dateString[0]);break;case 'j':// 一个月中的第几天,不带前导零(1 到 31)result.push(_time.getDate());break;// case 'l'://     // ('L' 的小写形式)- 星期几的完整的文本表示//     break;case 'N':// 星期几的 ISO-8601 数字格式表示(1表示Monday[星期一],7表示Sunday[星期日])result.push(_time.getDay()+1);break;// case 'S'://     // 一个月中的第几天的英语序数后缀(2 个字符:st、nd、rd 或 th。与 j 搭配使用)//     break;case 'w':// 星期几的数字表示(0 表示 Sunday[星期日],6 表示 Saturday[星期六])result.push(_time.getDay());break;case 'z':// 一年中的第几天(从 0 到 365)result.push(Math.ceil((new Date(_time.toDateString()) - new Date(_time.getFullYear().toString()))/(24*60*60*1000)));break;case 'W':// 用 ISO-8601 数字格式表示一年中的第几个星期(第几周)result.push(Math.ceil(Math.ceil((new Date(_time.toDateString()) - new Date(_time.getFullYear().toString()))/(24*60*60*1000))/7));break;// case 'F'://     // 月份的完整的文本表示(January[一月份] 到 December[十二月份])//     break;case 'm':// 月份的数字表示(从 01 到 12)result.push(strPad(_time.getMonth()+1));break;case 'M':// 月份的短文本表示(用三个字母表示)result.push(dateString[1]);break;case 'n':// 月份的数字表示,不带前导零(1 到 12)result.push(strPad(_time.getMonth()+1));break;case 't':// 给定月份中包含的天数temp = new Date(_time);// 防止改变原时间对象temp.setMonth(_time.getMonth()+1);temp.setDate(0);// 设置为0,date会自动切为上一个月的最后一天result.push(temp.getDate());break;case 'L':// 是否是闰年(如果是闰年则为 1,否则为 0)temp = _time.getFullYear();if(temp%4 == 0 && temp%100 != 0 || temp%400 == 0){result.push(1);}else{result.push(0);}break;case 'o':// ISO-8601 标准下的年份数字case 'Y':// 年份的四位数表示result.push(_time.getFullYear());break;case 'y':// 年份的两位数表示result.push(_time.getFullYear().toString().substr(2,2));break;case 'a'://小写形式表示:am 或 pmtemp = _time.getHours();result.push(temp<12?'am':'pm');break;case 'A':// 大写形式表示:AM 或 PMtemp = _time.getHours();result.push(temp<12?'AM':'PM');break;// case 'B'://     // Swatch Internet Time(000 到 999)//     break;case 'g':// 12 小时制,不带前导零(1 到 12)temp = _time.getHours();result.push(temp>12?temp-12:temp);break;case 'G':// 24 小时制,不带前导零(0 到 23)temp = _time.getHours();result.push(temp);break;case 'h':// 12 小时制,带前导零(01 到 12)temp = _time.getHours();temp = temp>12?temp-12:temp;result.push(strPad(temp));break;case 'H':// 24 小时制,带前导零(00 到 23)temp = _time.getHours();result.push(strPad(temp));break;case 'i':// 分,带前导零(00 到 59)result.push(strPad(_time.getMinutes()));break;case 's':// 秒,带前导零(00 到 59)result.push(strPad(_time.getSeconds()));break;default:result.push(_format[ii]);}}return result.join('');
}

获取指定时间戳(毫秒)

function strtotime(string, time, toms){let date, timestamp, msg = "参数格式错误,请参照 a b a b ……,a:正负数整型,b:单位year(y年),month(m月),week(w周),day(d日),hours(h时),minutes(i分),seconds(s秒)\r\n如: '2 day -1 hours'=》47小时后\r\n如: '-2 day 1 hours'=》47小时前";// 判断是否是时间参数let isDateParam = function(_str,_toms){let _date,_timestamp;if(typeof _str === 'undefined' || !_str || (typeof _str === 'object' && _str.length === 0)){return new Date().valueOf();}// 判断下_str 是不是位于10至12位的纯阿拉伯数字,如果是转为毫秒时间戳// if(/^[1-9]\d{9,11}$/.test(_str)){//     _str*=1000;// }if(_str === 'now'){_date = new Date();}else{// 直接转处理_str如果是时间格式_date = new Date(_str);}if(_date.toString() !== 'Invalid Date' && _date.toLocaleDateString() !== '1970/1/1'){// _str就是时间值,参数二变成是否转为时间戳秒单位// 判断第二个参数,如果为真则转为秒的单位_timestamp = _date.valueOf();if(_toms){_timestamp = parseInt(_timestamp/1000);}return _timestamp;}return false;}// 判断string是否是直接时间字符串或时间对象,如果是直接返回值date = isDateParam(string,time);if(date && !isNaN(date)){return date;}// 判断_time参数date = isDateParam(time, false);if(date && !isNaN(date)){timestamp = date;date = new Date(date);}else{date = new Date();timestamp = date.valueOf();}let values,unitNames;try {// 提取数值和单位values = string.replace(/[^\d-+.]+/g,'_#_').split('_#_').filter(function (s) {return s && parseInt(s);});// 单位名unitNames = string.replace(/[\d-+.]+/g,'_#_').split('_#_').filter(function (s) {return s && s.trim();});} catch(error) {throw msg;}let oneDayTamp = 86400000, uniqueUnit = {},temp;for(let ii = 0; ii < values.length; ii++){if(unitNames[ii] === 'minutes'){unitNames[ii] = 'i';}if(unitNames[ii] && !uniqueUnit.hasOwnProperty(unitNames[ii][0])){let val = parseInt(values[ii]);uniqueUnit[unitNames[ii][0]] = 1;// 取单位的首字母switch(unitNames[ii]){case 'y':// no break;case 'year':temp = new Date(timestamp);temp.setFullYear(temp.getFullYear() + val);timestamp = temp.valueOf();break;case 'm':// no break;case 'month':temp = new Date(timestamp);temp.setMonth(temp.getMonth() + val);timestamp = temp.valueOf();break;case 'w':// no break;case 'week':timestamp += val*604800000;break;case 'd':// no break;case 'day':timestamp += val*86400000;break;case 'h':// no break;case 'hours':timestamp += val*3600000;break;case 'i':// no break;case 'minutes':timestamp += val*60000;break;case 's':// no break;case 'seconds':timestamp += val*1000;break;}}}if(toms){timestamp = parseInt(timestamp/1000);}return timestamp;
}

js处理时间戳转成日期格式相关推荐

  1. js获取时间戳转化成日期格式的直接使用和封装

    目录 一.在页面中直接使用 1.  通过模板字符串使用 2.  定义变量存放时间 3.  在 mounted() 方法里调用 二.封装函数(推荐) 1.  在单独的 js 文件内书写格式化的代码 2. ...

  2. js处理时间(时间戳转化成日期格式、几分钟前,几个小时前等、视频时长)

    1.时间戳转换成日期格式 下面这个方法转换成的格式为:2018-12-10 18:26:32 // 时间戳format(timestamp) {var date = new Date(timestam ...

  3. 10位、13位时间戳转换成日期格式JS

    10位.13位时间戳转换成日期格式JS 此处parama为我们需要交换的时间变量 10位时间戳需要*1000 13位不需要 let date = new Date(parseInt(param)); ...

  4. js 时间戳转换成时间_JavaScript 时间戳转成日期格式

    我们在开发中经常需要把时间戳转化成日期格式,但 JavaScript 本身自带的 Date 方法并不像 PHP date 的那么强大.因此,我们就需要自己动手写一个方法. 首先我们要先了解下需要用到的 ...

  5. Java如何把UNIX时间戳转换成日期格式-日期格式转化时间戳戳-当前时间戳

    开发中,经常需要把UNIX时间戳通过日期格式显示出来,如下可以输出日期格式 package com.self.date;import java.util.Date; import java.text. ...

  6. js将字符串转成日期格式,返回年月日

    /**  * js将字符串转成日期格式,返回年月日  * @param dateStr 日期字符串  * @param type 转换类型 d返回日.md返回月日.ymd返回年月日  * 想了解更多, ...

  7. 【day18】Java如何把UNIX时间戳转换成日期格式

    //UNIX时间戳转换成日期格式public static String timeStampToDate(Long timeStamp) {String dateFormat_str = " ...

  8. 时间戳转成日期格式(全)

    1:把后端返回的时间戳转为现在的时间戳的方法 代码: parseInt(new Date().getTime()) 转化为明天现在的时间戳: parseInt(new Date().getTime() ...

  9. 将时间戳转换成日期格式:

    1. 将时间戳转换成日期格式: function timestampToTime(timestamp) { var date = new Date(timestamp * 1000);//时间戳为10 ...

最新文章

  1. [译] 通过视图控制器容器和子视图控制器避免庞大的视图控制器
  2. java执行jar中的main_浅谈java 执行jar包中的main方法
  3. python——正则表达式
  4. 微信小程序_基础组件学习02
  5. 修改mysql文件位置_如何修改mysql数据文件存储位置
  6. 巨坑!同事离职前一天,偷偷将一个470欧的色环电阻串进我的电源线中......
  7. js当前时间格式化_JS时间格式化
  8. 16产品经理需要具备的做事能力
  9. qt android文件读写文件,qt android 开发之写入xml配置文件篇
  10. 【Matlab】利用diary记录日志/保存命令窗口输出
  11. docker容器连接Android设备,通过ADB连接到Docker容器中的USB Android设备
  12. (二)为COVID-19诊断准备深度学习环境
  13. 漂亮的代码6:增加字符串后的数字
  14. mysql数据库永久链接_PHP使用数据库永久连接方式(mysql_pconnect)操作MySQL的是与非...
  15. 用HTML5/CSS3/JS开发Android/IOS应用
  16. chainmaker 区块中最大交易数 block_tx_capacity设置 区块大小 区块容量
  17. MyEclipse服务器远程调试
  18. HDU 5762 Teacher Bo (水题)
  19. GHOSTXP_SP3电脑公司装机特别版 V30.0[NTFS]
  20. 人脸识别+AI技术如何实现智慧工地履约考勤?

热门文章

  1. 什么护眼灯对眼睛好?2022护眼灯315合格产品
  2. Overleaf在线版常用代码
  3. App自动化测试之Java平台下使用Appium测试App(一)
  4. 【智能物流】200亿规模的制造企业,如何规划供应链物流体系?
  5. CDN是什么?CDN的作用
  6. kubectl插件管理器krew
  7. 查分吧(chafenba)万用考试成绩查询小程序源码
  8. mac系统免费软件 GoodNotes 5.8.6 中文版 (最好的手写笔记应用)
  9. micropython webrepl_通过EMP来设置MicroPython开机WIFI连接和WebREPL
  10. 打造智慧城市首选智慧步道