1. 计算工作日
var date = limsCdcFolder.countWorkDay(data.acceptanceDate, value);
this.setData({
ext$: {
estimateddays: date
}
})
//计算工作日
countWorkDay: function (date1, date2) {
date1 = limsCdcFolder.stringToDate(date1);
date2 = limsCdcFolder.stringToDate(date2);
delta = (date2 - date1) / (1000 * 60 * 60 * 24) + 1; // 计算出总时间
weeks = 0;
for (i = 0; i < delta; i++) {
if (date1.getDay() == 0 || date1.getDay() == 6) weeks++; // 若为周六或周天则加1
date1 = date1.valueOf();
date1 += 1000 * 60 * 60 * 24;
date1 = new Date(date1);
}
return delta - weeks;
},
2.判断字符串是否包含字母
!Pattern.compile(".*[a-zA-Z]+.*").matcher(orderNos).find()
3.数字前自动补0
java
System.out.pranf("%03d",11)
4. js比较时间
var expirydDate = addFormData.expirydDate;
var solupreparaExpirydDate = Date.parse(new Date(expirydDate.replace(/g/,"")))
for(var i = 0 ;i <complist.length; i++){
var row = complist[i];
var compExpirydDate = row.expirationdate
if (compExpirydDate != null && compExpirydDate != ""){
var compExpirydDate = Date.parse(new Date(compExpirydDate.replace(/g/,"")));
if (solupreparaExpirydDate > compExpirydDate){
xxx.alert('过期日期大于物质过期日期,请重新选择');
return;
}
}
}
其他时间操作
在开发中,需要处理一些时间之间的差值,后端传给我们开始时间与结束时间,我们则需要用当前时间来判断两组时间之间的差值,在js中可以这样写,上代码:
let now = new Date()
let year = now.getFullYear()
let month = now.getMonth()
let date = now.getDate()
let hour = now.getHours()
let minu = now.getMinutes();
let sec = now.getSeconds()
month = month + 1
if (month < 10){ month = "0" + month;}
if (date < 10) date = "0" + date;
if (hour < 10) hour = "0" + hour;
if (minu < 10) minu = "0" + minu;
if (sec < 10) sec = "0" + sec;
let time = year + '-' + month + '-' + date + ' ' + hour + ':' + minu + ':' + sec
Date.prototype.diff = function(date){
return (this.getTime() - date.getTime())/(24 * 60 * 60 * 1000)
}
let nowTime = new Date(now)
let end = new Date('2021/03/26 12:43:45')
let endTime = end.diff(nowTime)
如果想要向下取整可以这样写:
let floorTime = Math.floor(endTime)
如果想要向上取整可以这样写:
let ceilTime = Math.ceil(endTime)
普通日期时间比较
泛指格式相同的日期时间
var date1 = new Date("2020-3-15");
var date2 = new Date("2020-2-29");
var result = date1 > date2;
console.log(result); //true
特殊日期时间比较
因格式不同,比较前,我们需要将日期时间格式化
var date1 = new Date("2020-3-15");
var date2 = new Date("2020/2/29");
var result = Date.parse(date1) > Date.parse(date2);
console.log(result); //true
字符串类型日期时间比较
用于不同格式之间的字符串日期时间比较,统一格式化后再比较
var date1 = "2020-3-15";
var date2 = "2020/2/29";
var result = date1.replace(/\-/g,'/') > date2.replace(/\-/g,'/');
console.log(result);
var myDate = new Date();
myDate.getYear(); //获取当前年份(2位)
myDate.getFullYear(); //获取完整的年份(4位,1970-????)
myDate.getMonth(); //获取当前月份(0-11,0代表1月)
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
var mytime=myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间
获取当前时间
/**获取当前日期 */
getTodayDate:function(){
var date=new Date();
var year=date.getFullYear();
var day=date.getDate();
if(day.length<2){
day="0"+day;
}
var month=date.getMonth()+1;
if(month.length<2){
month="0"+month;
}
return year+"-"+month+"-"+day;
},
计算两时间相差天数
getDays:function (start, end) {
let dateSpan, iDays
start = Date.parse(start)
end = Date.parse(end)
dateSpan = end - start
dateSpan = Math.abs(dateSpan)
iDays = Math.floor(dateSpan / (24 * 3600 * 1000))
return iDays;
}
Calendar date = Calendar.getInstance();
String year = String.valueOf(date.get(Calendar.YEAR));
5.简单脱敏
hideCode: function (str, frontLen, endLen) {
var len = str.length - frontLen - endLen;
var xing = '';
for (var i = 0; i < len; i++) {
xing += '*';
}
return str.substring(0, frontLen) + xing + str.substring(str.length - endLen);
},
/**
* 对个人信息进行脱敏
* @param type,value
*/
desensitize: function (type, value) {
if (value === null) {
return;
}
if (type === 'name') {
var str = fullName.substr(0, 1);
for (let i = 0; i < fullName.length - 1; i++) {
value += '*';
}
return str;
} else if (type === 'phone') {
// 手机号正则校验
var phoneReg = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{4}(\d{4})$/;
return value.replace(phoneReg, '$1****$2');
} else if (type === 'IDcard') {
// 简易身份证号码正则
var idNoReg = /(\d{6})(\d*)(\w{3})/;
if (idNoReg.test(value)) {
var text1 = RegExp.$1;
var text3 = RegExp.$3;
var text2 = RegExp.$2.replace(/./g, "*");
return text1 + text2 + text3;
}
}
},
6.正则匹配数字 汉字
7 两个数组操作
例如: array2中包含了array1数组,怎么在array2中删除array1的内容。
array1 = [ {id:10},{id:20} ]
array2 = [ {id:10},{id:20},{id:30},{id:40} ]
for循环写法:
array1 = [ {id:10},{id:20} ]
array2 = [ {id:10},{id:20},{id:30},{id:40} ]
let data = []
for(let i=0;i<array2.length;i++){
if(!array1.find(item=>item.id == array2[i].id)){
data.push(array2[i]);
}
}
console.log(data)
结果:
第二种写法:
array1 = [ {id:10},{id:20} ]
array2 = [ {id:10},{id:20},{id:30},{id:40} ]
let data = []
array2.map((el, index) => {
if (!array1.find(item => item.id == el.id)) {
data.push(array2[index]);
}
})
console.log(data)
结果:
7 获取本月和上月的某一天数据
/**
* 获取上个月5号的时间
* @param date 下次校准时间
* @returns {Date} 器具有效期
*/
getLastFiveDate : function (date){
var year=date.getFullYear();
var month=date.getMonth();
var by=[year,month+1].join('-');
if(month == 0){
var sy = [year-1,12].join('-');
}else{
var sy = [year,month].join('-');
}
//本月1号
this.value1 = new Date(by.replace(/-/,"/"));
//上月5号
this.value2 = new Date(sy.replace(/-/,"/")+"/5");
return this.value2;
},
-
当前月第一天
-
CurrentMonthFirst(){ var date=new Date(); date.setDate(1); return date; },
- 当前月最后一天
-
CurrentMonthLast(){ var date=new Date(); var currentMonth=date.getMonth(); var nextMonth=++currentMonth; var nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1); var oneDay=1000*60*60*24; return new Date(nextMonthFirstDay-oneDay); },
- 上月的第一天和最后一天
-
gettime2(){ let nowdays = new Date(); let year = nowdays.getFullYear(); let month = nowdays.getMonth(); if(month==0){ month=12; year=year-1; } if (month < 10) { month = "0" + month; } let firstDayOfPreMonth = year + "-" + month + "-" + "01"; let lastDay = new Date(year, month, 0); let lastDayOfPreMonth = year + "-" + month + "-" + lastDay.getDate(); firstDayOfPreMonth = firstDayOfPreMonth.toString(); lastDayOfPreMonth = lastDayOfPreMonth.toString(); this.value4 = []; this.value4.push(firstDayOfPreMonth); this.value4.push(lastDayOfPreMonth); },