(function(window,$){
function Tools() { }
// url
Tools.prototype.readUrlToParams = function() {
var url = location.href;
var nameValue;
var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
var paraObj = {};
for (var i = 0; nameValue = paraString[i]; i++) {
var name = nameValue.substring(0, nameValue.indexOf("="));
var value = nameValue.substring(nameValue.indexOf("=") + 1, nameValue.length);
if (value.indexOf("#") > -1) {
value = value.split("#")[0];
}
paraObj[name] = value;
}
return paraObj;
}//时间戳转化为多久以前
Tools.prototype.formatMsgTime = function(timespan) {
// 转换成时间
var dateTime = new Date(timespan);
// 获取时间戳对应的年月日是分秒
var year = dateTime.getFullYear();
var month = dateTime.getMonth() + 1;
var day = dateTime.getDate();
var hour = dateTime.getHours();
var minute = dateTime.getMinutes();
var second = dateTime.getSeconds();
// 获取当前时间
var now = new Date();
// 转换成时间戳
var now_new = Date.parse(now); //typescript转换写法
// 初始变量
var milliseconds = 0;
var timeSpanStr;
// 时间戳作差求时间差
milliseconds = now_new - timespan;
// 小于一分钟等于刚刚
if (milliseconds <= 1000 * 60 * 1) {
timeSpanStr = '刚刚 :';
}
// 小于一小时是多少分钟前
else if (1000 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60) {
timeSpanStr = Math.round((milliseconds / (1000 * 60))) + '分钟前 ';
}
// 小于一天是多少小时
else if (1000 * 60 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24) {
timeSpanStr = Math.round(milliseconds / (1000 * 60 * 60)) + '小时前 ';
}
// 小于半个月是多少天前
else if (1000 * 60 * 60 * 24 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24 * 15) {
timeSpanStr = Math.round(milliseconds / (1000 * 60 * 60 * 24)) + '天前 ';
}
// 几个月
else if (milliseconds > 1000 * 60 * 60 * 24 * 15 && year == now.getFullYear()) {
timeSpanStr = month + '-' + day + ' ' + hour + ':' + minute;
} else {
// 几年
timeSpanStr = year + '-' + month + '-' + day + ' ' + hour + ':' + minute;
}
return timeSpanStr;
};
//时间转化(时间戳转化为标准时间)
Tools.prototype.formatDateTime = function(inputTime) {
var date = new Date(inputTime);
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
h = h < 10 ? ('0' + h) : h;
var minute = date.getMinutes();
var second = date.getSeconds();
minute = minute < 10 ? ('0' + minute) : minute;
second = second < 10 ? ('0' + second) : second;
return y + '/' + m + '/' + d + ' ' + h + ':' + minute + ':' + second;
};
// 时间戳的差转化时分秒
Tools.prototype.getNowFormatDate = function (timespan) {
var date = timespan; //计算剩余的毫秒数
var h = parseInt(date / 1000 / 60 / 60 % 24 , 10); //计算剩余的小时
var M = parseInt(date / 1000 / 60 % 60, 10);//计算剩余的分钟
var s = parseInt(date / 1000 % 60, 10);//计算剩余的秒数
var seperator2 = ":"; if (h <= 9) {
h = "0" + h;
}
if (M <= 9) {
M = "0" + M;
}
if (s <= 9) {
s = "0" + s;
}
var currentdate = h + seperator2 + M
+ seperator2 + s;
return currentdate;
},
// 获取分秒
Tools.prototype.getNowHS = function (timespan , newTime) { var date = timespan - newTime; //计算剩余的毫秒数
var M = parseInt(date / 1000 / 60 % 60, 10);//计算剩余的分钟
var s = parseInt(date / 1000 % 60, 10);//计算剩余的秒数
var seperator2 = ":";
if(M < 0 || s < 0){
return '00:00'
}
if (M <= 9 && M > 0) {
M = "0" + M;
}
if (s <= 9 && s > 0) {
s = "0" + s;
}
var currentdate = M + seperator2 + s;
return currentdate;
},// 获取n为随机数
Tools.prototype.randomNum = function(n) {
var t = '';
for (var i = 0; i < n; i++) {
t += Math.floor(Math.random() * 10);
}
return t;
}
// 图片预加载
Tools.prototype.preLoadImages = function(urls) {// 可以是String Array或者String
var argsLen = arguments.length,
loadImage = function (url) {
var img = new Image();
img.src = url;
};
if (argsLen == 1) {
if (typeof (urls) == "string" && (sLen = urls.length) > 1) {// 预加载一个图片
loadImage(urls);
}
else if (Object.prototype.toString.call(arguments[0]) == "[object Array]" && urls.length > 0) {// 预加载多个图片
for (var i = 0; i < urls.length; i++) {
loadImage(urls[i]);
}
}
}
}

window.Tools = Tools;
})(window,$)

工具函数(获取url , 时间格式化,随机数)的更多相关文章

  1. vue 工具函数的封装 时间格式化函数

    时间代码格式化工具函数的封装 小伙伴们,多封点工具函数,多封装点公共组件,多写点公共样式,照顾下互联网行业的新人把....~~~~~ /** yyyymmdd(new Date) -> &quo ...

  2. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  3. iOS 获取当前时间格式化字符串

    iOS 获取当前时间格式化字符串 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保 ...

  4. android 时间获取以及时间格式化

    Android中获取系统时间有多种方法,可分为Java中Calendar类获取,java.util.date类实现,还有android中Time实现 现总结如下: 方法一: void getTime1 ...

  5. [工具类]获取url中参数列表

    写在前面 在项目中经常用到解析url中参数的逻辑,今天先下载就自己封装了一个方法,方便以后使用的时候,信手拈来.当然这里给出的方法是针对常见的url参数类型的,对于重写url,或者路由格式的不考虑. ...

  6. MySQL时间函数-获取当前时间-时间差

    MySQL中获取当前时间为now(),不同于sqlserver getdate(). SQLServer转MySQL除变化top 1 -> limit 1之后报错: limit [Err] 15 ...

  7. java代码--Date类获取当前时间-格式化输出

    44:52 阅读数:2299 package cn.Date;   import java.text.Format; import java.text.SimpleDateFormat; import ...

  8. C语言中time函数获取系统时间

    可以通过time()函数来获得计算机系统当前的日历时间(Calendar Time),处理日期时间的函数都是以本函数的返回值为基础进行运算.其原型为: time_t time(time_t * t); ...

  9. C语言time函数获取当前时间

    以前放了个链接,但是原作者把博文删了,这里放一个获取时间的代码,已经比较详细所以不做注释 #include<stdio.h> #include<time.h> #include ...

随机推荐

  1. Linux系统基本操作命令

    1.文件与文件夹(目录)操作命令 可以参考:http://www.runoob.com/linux/linux-command-manual.html 1)rm:删除命令 例:$  rm  -i  文 ...

  2. 线性表seqList类及其父类list,模板类

    seqList模板类,线性表代码 # include "list.h" //代码清单2-2 顺序表类的定义和实现 // The Definition of seqList temp ...

  3. leetcode题解2. Add Two Numbers

    题目: You are given two non-empty linked lists representing two non-negative integers. The digits are ...

  4. 周强201771010141《面向对象程序设计Java》第八周学习总结

    一.理论知识学习部分 Java为了克服单继承的缺点,Java使用了接口,一个类可以实现一个或多个接口. 接口体中包含常量定义和方法定义,接口中只进行方法的声明,不提供方法的实现. 类似建立类的继承关系 ...

  5. laravel 解决保存Emoji 表情问题

    ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; ALTER TABLE table ...

  6. RSA加密解密实现(JAVA)

    1.关于RSA算法的原理解析参考:http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html 2.RSA密钥长度.明文长度和密 ...

  7. Python 实现累加计数的几种方法

    #要实现累加,关键在于数据存在哪儿,怎么使每次累加的都是同一个变量 行为像静态变量 #前两种都是数据存到类的成员变量, # 类利用__call__ class foo: def __init__(se ...

  8. 【转】SpringBoot——web项目下读取classpath下的文件心得

    在读取springBoot+gradle构建的项目时,如果使用传统的FileInputStream读取文件流或者ResourceUtils工具类的方式,都会失败,下面解释原因: 一.读取文件的三种方式 ...

  9. spring(二、bean生命周期、用到的设计模式、常用注解)

    spring(二.bean生命周期.用到的设计模式.常用注解) Spring作为当前Java最流行.最强大的轻量级框架,受到了程序员的热烈欢迎.准确的了解Spring Bean的生命周期是非常必要的. ...

  10. C++之string类型详解

    C++之string类型详解 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够.字符串长度等等,而且作为一个泛型类出现,他集成的操作函 ...