小程序实现 时间格式化 公共方法封装

小程序实现 时间格式化 公共方法封装

注意 时间戳两种格式 1.XXXXXX 2. XXXXXX000

时间戳分为10位和13位,date默认精度是毫秒,也就是说生成的时间戳就是13位的,有的时间戳默认就是10位的,因为其精度是秒。
13位时间戳如何转换成10位时间戳
第一种:通过substring方法,将13位的时间戳最后三位数字截取
第二种:将13位时间戳除以1000取整


  • 第一步 封装
		function formatTime(date) {
	    var year = date.getFullYear()
	    var month = date.getMonth() + 1
	    var day = date.getDate()
	
	    var hour = date.getHours()
	    var minute = date.getMinutes()
	    var second = date.getSeconds()
	
	
	    return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
	}
	
	function formatNumber(n) {
	    n = n.toString()
	    return n[1] ? n : '0' + n
	}
	
	/** 
	 * 时间戳转化为年 月 日 时 分 秒 
	 * number: 传入时间戳 
	 * format:返回格式,支持自定义,但参数必须与formateArr里保持一致 
	*/
	function formatTimeTwo(number, format) {
	
	    var formateArr = ['Y', 'M', 'D', 'h', 'm', 's'];
	    var returnArr = [];
	    // var date = new Date(number * 1000);
	    var date = new Date(number);
	    returnArr.push(date.getFullYear());
	    returnArr.push(formatNumber(date.getMonth() + 1));
	    returnArr.push(formatNumber(date.getDate()));
	
	    returnArr.push(formatNumber(date.getHours()));
	    returnArr.push(formatNumber(date.getMinutes()));
	    returnArr.push(formatNumber(date.getSeconds()));
	
	    for (var i in returnArr) {
	        format = format.replace(formateArr[i], returnArr[i]);
	    }
	    return format;
	}
	function formatBrushDuration(time){
	    var theTime = time //时间戳(秒)
	    var minute= 0; // 分
	    var hour = 0;//小时
	    if(theTime > 60){
	    minute= parseInt(theTime / 60);
	    theTime = parseInt(theTime % 60);
	    if(minute> 60){
	        hour = parseInt(minute/ 60);
	        middle = parseInt(minute% 60);
	    }
	    }
	    var result= "" + parseInt(theTime) + "s" 
	    if(minute> 0){
	    result= "" + parseInt(minute) + "m" + result;
	    }
	    if(hour > 0){
	    result= "" + parseInt(hour) + "h" + result;
	    }
	    return result;
	}
	
	module.exports = {
	    formatTime: formatTime,
	    formatTimeTwo: formatTimeTwo,
	    formatBrushDuration:formatBrushDuration
	}
  • 第二步 引用
var time = require('../../utils/common.js');
  • 第三步 使用
  			item.BrushTime=time.formatTimeTwo(new Date(brushTime), 'h:m');
               item.TimeLong=time.formatBrushDuration(item.TimeLong);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 下面是一个高阶的 JavaScript 时间格式函数的示例: ``` function formatDate(date, format) { if (!date) return ''; if (!format) format = 'yyyy-MM-dd hh:mm:ss'; switch(typeof date) { case 'string': date = new Date(date.replace(/-/g,'/')); break; case 'number': date = new Date(date); break; } if (!date instanceof Date) return; var dict = { 'yyyy': date.getFullYear(), 'M': date.getMonth() + 1, 'd': date.getDate(), 'H': date.getHours(), 'm': date.getMinutes(), 's': date.getSeconds(), 'MM': ('' + (date.getMonth() + 101)).substr(1), 'dd': ('' + (date.getDate() + 100)).substr(1), 'HH': ('' + (date.getHours() + 100)).substr(1), 'mm': ('' + (date.getMinutes() + 100)).substr(1), 'ss': ('' + (date.getSeconds() + 100)).substr(1) }; return format.replace(/(yyyy|MM?|dd?|HH?|ss?|mm?)/g, function() { return dict[arguments[0]]; }); } ``` 这个函数可以接受一个时间对象、字符串或数字类型的时间戳作为第一个参数,并可以接受一个时间格式字符串作为第二个参数。如果第二个参数不传,默认格式是 "yyyy-MM-dd hh:mm:ss"。 使用方式: ``` console.log(formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss')) console.log(formatDate(1609452400000, 'yyyy-MM-dd')) console.log(formatDate('2021-09-01 12:00:00', 'yyyy-MM-dd')) ``` 请注意,此代码仅供参考,在实际项目中可能需要根据具体需求进行修改。 ### 回答2: 要封装一个高阶的 JavaScript 时间格式方法,我们可以通过使用 Date 对象和字符串操作来实现。以下是一个简单的实现示例: ```javascript function formatTime(time, format) { var date = new Date(time); var year = date.getFullYear(); var month = padZero(date.getMonth() + 1); var day = padZero(date.getDate()); var hour = padZero(date.getHours()); var minute = padZero(date.getMinutes()); var second = padZero(date.getSeconds()); var result = format.replace('yyyy', year) .replace('MM', month) .replace('dd', day) .replace('HH', hour) .replace('mm', minute) .replace('ss', second); return result; } function padZero(num) { return (num < 10 ? '0' : '') + num; } ``` 这个方法接受两个参数:时间戳和格式字符串。时间戳可以是一个表示时间的数字或字符串,格式字符串用来指定输出的时间格式。通过传入对应的格式字符可以获得不同精度的时间格式,比如 'yyyy-MM-dd HH:mm:ss' 可以得到类似 '2022-07-20 15:30:45' 的结果。 此外,我们在方法中使用了一个辅助函数 padZero 来处理小时、分钟和秒钟这些数字格式,确保它们始终为两位数。 这个方法可以方便地用于项目中的时间格式需求。通过将时间戳和格式传入方法,即可得到所需的格式时间字符串。 ### 回答3: 时间格式是在开发中常用的一个功能。下面是一个封装了高阶的JavaScript时间格式方法: ```javascript function formatDate(date, format) { // 获取年份 const year = date.getFullYear().toString(); // 获取月份,月份从0开始,需要加上1 const month = (date.getMonth() + 1).toString().padStart(2, '0'); // 获取日期 const day = date.getDate().toString().padStart(2, '0'); // 获取小时 const hour = date.getHours().toString().padStart(2, '0'); // 获取分钟 const minute = date.getMinutes().toString().padStart(2, '0'); // 获取秒钟 const second = date.getSeconds().toString().padStart(2, '0'); // 定义格式的规则映射表 const formatMap = { 'YYYY': year, 'MM': month, 'DD': day, 'HH': hour, 'mm': minute, 'ss': second }; // 替换格式规则 let formattedDate = format.replace(/YYYY|MM|DD|HH|mm|ss/g, match => formatMap[match]); return formattedDate; } // 测试示例 const date = new Date(); const formattedDate = formatDate(date, 'YYYY-MM-DD HH:mm:ss'); console.log(formattedDate); ``` 这个方法接受两个参数:`date`和`format`。`date`是一个日期对象,可以是当前时间,也可以是其他时间;`format`是一个格式字符串,用于指定需要返回的时间格式方法首先通过`getDate`系列方法获取日期相关的各个部分,然后定义了一个格式规则的映射表`formatMap`,根据规则替换格式字符串,最后返回格式后的时间字符串。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值