//计算两个日期之间相差的天数(因为这里是计算工期,所有默认都加一,即2016-01-01与2016-01-02得到结果为两天工期)参数形式:strDate与endDate均为:'xxxx-xx-xx'
function getBetweenDates(strDate,endDate){
var sDate = new Date(strDate);
var eDate = new Date(endDate);
var fen = ((eDate.getTime()-sDate.getTime())/1000)/60;
var distance = parseInt(fen/(24*60))+1; //相隔distance天
return distance;
}
//四舍五入函数 , 参数p 为保留精度 默认为2 round(3.1415,3) => 3.142
function round(n,p){
n = n-0;
p = p || 2;
var m = Math.pow(10,p);
return Math.round(n * m) / m;
}
//给定一个时间日期,返回一个格式化日期, formatDate(new Date()) =》 "2018-08-06"
function formatDate(date){
var month = (date.getMonth()+1);
var day = date.getDate();
if(month < 10 ){
month = "0"+month;
}
if(day < 10){
day = "0"+day;
}
return date.getFullYear() +"-"+month+"-"+day;
}
//获取一个日期的前一天日期
function getLastDay(d){
var date = d || new Date();
var year = date.getFullYear();
var month = (date.getMonth()+1);
var day = date.getDate();
if(day == 1){
month -= 1;
if(month == 0){
month = 12;
year -= 1;
}
if(month == 2){
if(leap(year)){
day = 29
}else{
day = 28
}
}else{
if(month == 1
|| month == 3
|| month == 5
|| month == 7
|| month == 8
|| month == 10
|| month == 12 ){
day = 31;
}else{
day = 30;
}
}
}
if(month < 10 ){
month = "0"+month;
}
if(day < 10){
day = "0"+day;
}
return year +"-"+month+"-"+day;
}
//判断闰年
function leap(year){
if(year % 4 == 0 && (year % 1000 != 0 || year % 400 == 0 ) ){
return true;
}else{
return false;
}
}
//校验只能输入数字(正数、负数、小数)·
function checkNoNum(obj,event){
event = window.event||event;
if(event.keyCode == 37 | event.keyCode == 39){
return;
}
obj.value = obj.value.replace(/[^\d-.]/g,"");
}
//验证由数字和26个英文字母组成的字符串
function checkNumAndStr(val,event){
var flag = false;
if(/^[A-Za-z0-9]+$/.test(val)){
flag = true;
}
return flag;
}
function checkNumAndStrOn(obj,event){
event = window.event||event;
if(event.keyCode == 37 | event.keyCode == 39){
return;
}
if(!/^[A-Za-z0-9]+$/.test(obj.value)){
obj.value = "";
}
}
//给定日期区间是否相隔几个月,s1和s2是给定区间,格式为yyyy-MM-dd。month是相差月份。如果是返回true,如果不是,返回false
function monthDifferent(beginDate,endDate,month){
var beginD = beginDate.split("-");
var endD = endDate.split("-");
var beginDates = new Date(beginD[0],beginD[1]-1,beginD[2]);
var endDates = new Date(endD[0],endD[1]-1,endD[2]);
var d1Year = beginDates.getFullYear();
var d1Month = beginDates.getMonth();
var d1Date = beginDates.getDate();
var a = new Date(d1Year,d1Month+month,d1Date);
var b = new Date(d1Year,d1Month-month,d1Date);
if(a<=endDates || b>=endDates){
return false;
}else{
return true;
}
}
//获取上一个月
function getAfterMonth() {
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
if (month == 1) {
year = year -1;
month = 12;
} else {
month = month -1;
}
var afterMonth = {
year:year,
month:month < 10 ? "0"+month : month
};
return afterMonth;
}
//获取当前年之前的年份
function getCurYearToBefore(endYear){
var yearArr = new Array();
var date = new Date();
var curYear = date.getFullYear();
var n = curYear - endYear;
for(var i=0;i<=n;i++){
var _yearArr = new Array();
var _year = curYear-i;
_yearArr.push(_year+"");
_yearArr.push(_year+"年");
yearArr.push(_yearArr)
}
return yearArr;
}
//获取所有月份
function getAllMonth(){
var monthArr = new Array();
for(var i=1;i<13;i++){
var _monthArr = new Array();
var _month = "";
if(i<10){
_month = "0"+i
}else{
_month = i;
}
_monthArr.push(_month+"");
_monthArr.push(_month+"月");
monthArr.push(_monthArr);
}
return monthArr;
}
//原生Ajax封装
function ajax_method(url,data,method,success) {
// 异步对象
var ajax = new XMLHttpRequest();
// get 跟post 需要分别写不同的代码
if (method=='get') {
// get请求
if (data) {
// 如果有值
url+='?';
url+=data;
}else{
}
// 设置 方法 以及 url
ajax.open(method,url);
// send即可
ajax.send();
}else{
// post请求
// post请求 url 是不需要改变
ajax.open(method,url);
// 需要设置请求报文
ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
// 判断data send发送数据
if (data) {
// 如果有值 从send发送
ajax.send(data);
}else{
// 木有值 直接发送即可
ajax.send();
}
}
// 注册事件
ajax.onreadystatechange = function () {
// 在事件中 获取数据 并修改界面显示
if (ajax.readyState==4&&ajax.status==200) {
// console.log(ajax.responseText);
// 将 数据 让 外面可以使用
// return ajax.responseText;
// 当 onreadystatechange 调用时 说明 数据回来了
// ajax.responseText;
// 如果说 外面可以传入一个 function 作为参数 success
success(ajax.responseText);
}
}
}