123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- function formatTime(time) {
- if (typeof time !== 'number' || time < 0) {
- return time
- }
- var hour = parseInt(time / 3600)
- time = time % 3600
- var minute = parseInt(time / 60)
- time = time % 60
- var second = time
- return ([hour, minute, second]).map(function(n) {
- n = n.toString()
- return n[1] ? n : '0' + n
- }).join(':')
- }
- function formatLocation(longitude, latitude) {
- if (typeof longitude === 'string' && typeof latitude === 'string') {
- longitude = parseFloat(longitude)
- latitude = parseFloat(latitude)
- }
- longitude = longitude.toFixed(2)
- latitude = latitude.toFixed(2)
- return {
- longitude: longitude.toString().split('.'),
- latitude: latitude.toString().split('.')
- }
- }
- var dateUtils = {
- UNITS: {
- '年': 31557600000,
- '月': 2629800000,
- '天': 86400000,
- '小时': 3600000,
- '分钟': 60000,
- '秒': 1000
- },
- humanize: function(milliseconds) {
- var humanize = '';
- for (var key in this.UNITS) {
- if (milliseconds >= this.UNITS[key]) {
- humanize = Math.floor(milliseconds / this.UNITS[key]) + key + '前';
- break;
- }
- }
- return humanize || '刚刚';
- },
- format: function(dateStr) {
- var date = this.parse(dateStr)
- var diff = Date.now() - date.getTime();
- if (diff < this.UNITS['天']) {
- return this.humanize(diff);
- }
- var _format = function(number) {
- return (number < 10 ? ('0' + number) : number);
- };
- return date.getFullYear() + '/' + _format(date.getMonth() + 1) + '/' + _format(date.getDay()) + '-' +
- _format(date.getHours()) + ':' + _format(date.getMinutes());
- },
- parse: function(str) { //将"yyyy-mm-dd HH:MM:ss"格式的字符串,转化为一个Date对象
- var a = str.split(/[^0-9]/);
- return new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]);
- },
- formateDate: function(newdate, format) {
- const date = {
- 'M+': newdate.getMonth() + 1,
- 'd+': newdate.getDate(),
- 'h+': newdate.getHours(),
- 'm+': newdate.getMinutes(),
- 's+': newdate.getSeconds(),
- 'q+': Math.floor((newdate.getMonth() + 3) / 3),
- 'S+': newdate.getMilliseconds()
- };
- if (/(y+)/i.test(format)) {
- format = format.replace(RegExp.$1, (newdate.getFullYear() + '').substr(4 - RegExp.$1.length));
- }
- for (const k in date) {
- if (new RegExp('(' + k + ')').test(format)) {
- format = format.replace(RegExp.$1, RegExp.$1.length === 1 ?
- date[k] : ('00' + date[k]).substr(('' + date[k]).length));
- }
- }
- return format;
- },
- getFirstDayOfWeek: function(date) {
- var day = date.getDay() || 7;
- var result = new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1 - day);
- return result;
- },
- getLastDayOfWeek: function(date) {
- var day = date.getDay() || 7;
- var result = new Date(date.getFullYear(), date.getMonth(), date.getDate() + 7 - day);
- return result;
- },
- /**获取当年第一天 */
- getCurrentYearFirstDate: function(now) {
- const nowyear = now.getFullYear() + ''; // 获取年(yyyy)
- // 调用格式化方法
- const firstDate = new Date(nowyear + '/01' + '/01');
- return firstDate;
- },
- /**获取当年最后一天 */
- getCurrentYearLastDate: function(now) {
- const year = now.getFullYear() + 1; // 获取年(yyyy)
- // 调用格式化方法
- const nextyear = new Date(year + '/01' + '/01');
- nextyear.setDate(nextyear.getDate() - 1);
- return nextyear;
- },
- /**获取当月月第一天 */
- getCurrentMonFirstDate: function(now) {
- const nowyear = now.getFullYear() + ''; // 获取年(yyyy)
- let nowmonth = now.getMonth() + 1 + ''; // 获取月份(0-11,0代表1月)
- // 调用格式化方法
- nowmonth = this.dateformat(nowmonth);
- const firstDate = new Date(nowyear + '/' + nowmonth + '/01');
- return firstDate;
- },
- /**获取当月月最后一天 */
- getCurrentMonLastDate: function(now) {
- const nextMonFirstDate = this.getNextMonFirstDate(now);
- nextMonFirstDate.setDate(nextMonFirstDate.getDate() - 1);
- return nextMonFirstDate;
- },
- /**获取下个月第一天 */
- getNextMonFirstDate: function(now) {
- const currentMonFirstDate = this.getCurrentMonFirstDate(now);
- currentMonFirstDate.setMonth(currentMonFirstDate.getMonth() + 1);
- return currentMonFirstDate;
- },
- dateformat: function(fmt) {
- if (fmt.length === 1) {
- fmt = '0' + fmt;
- }
- return fmt;
- }
- };
- module.exports = {
- formatTime: formatTime,
- formatLocation: formatLocation,
- dateUtils: dateUtils
- }
|