我的技术文档
动态获取当天是星期几
SimpleDateFormat dateFm = new SimpleDateFormat("EEEE"); //EEEE区分大小写,星期
String format = dateFm.format(date);//转换
if (format.equals("星期一")){
}if(format.equals("星期二")){
}if(format.equals("星期三")){
}if(format.equals("星期四")){
}if(format.equals("星期五")){
}if(format.equals("星期六")){
}if(format.equals("星期天")){
}
动态获取当前是当月的第几周
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateNowStr = sdf.format(date);
Date date2 = null;
// String i="2020-3-31";//测试
// date2=sdf.parse(dateNowStr);
date2=sdf.parse(dateNowStr);
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.setTime(date2);
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));//返回这一年的第几周
//第几周
int week = calendar.get(Calendar.WEEK_OF_MONTH);//放回当月的第几周
System.out.println(week);
if (week==1){
work.setWeek("1");
}if (week==2){
work.setWeek("2");
}if (week==3){
work.setWeek("3");
}if (week==4){
work.setWeek("4");
}if(week==5){
work.setWeek("5");
}
/*测试2020.4.30 输出结果第5周
2020.3.31 输出结果第6周*/
js获取当前周的第一天和最后一天
let data = new Date() //当前日期
let year = Number(data.getFullYear());//当前年
let month = Number(data.getMonth())+1;
let nowMonth =Number(data.getMonth()); //当前月
let day = Number(data.getDate()); //当天
//计算某日是本月第几周
let mydate=new Date(year,month-1,day);
let weekday=mydate.getDay(); //获取该日是星期几,0代表星期日//今天本周的第几天
let weekno=Math.ceil((day + 6 - weekday) / 7); // 本月第几周
console.log("本月第几周:"+weekno)
//获取当前周的开始结束时间
let startTime //本周的开始时间
let endTime //本周的结束时间
function formatDate(date) {
let myyear = Number(date.getFullYear());
let mymonth = Number(date.getMonth()+1);
let myweekday = Number( date.getDate());
if(mymonth < 10){
mymonth = "0" + mymonth;
}
if(myweekday < 10){
myweekday = "0" + myweekday;
}
return (myyear+"-"+mymonth + "-" + myweekday);
}
//获得本周的开始日期
function getWeekStartDate() {
let weekStartDate = new Date(year, nowMonth, day + 1 - weekday);
return formatDate(weekStartDate);
}
//获得本周的结束日期
function getWeekEndDate() {
let weekEndDate = new Date(year, nowMonth, day + 7 - weekday);
return formatDate(weekEndDate);
}
startTime=getWeekStartDate()
endTime=getWeekEndDate()
console.log("开始日期:"+startTime+"结束日期: "+endTime)
动态获取当天是第几月
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateNowStr = sdf.format(date);
SimpleDateFormat dateFm = new SimpleDateFormat("MM");
String format = dateFm.format(date);
System.out.println(format);
if (format.equals("01")){
work.setWeek("1");
}if (format.equals("02")){
work.setWeek("2");
}if (format.equals("03")){
work.setWeek("3");
}if (format.equals("04")){
work.setWeek("4");
}if(format.equals("05")){
work.setWeek("5");
}if(format.equals("06")){
work.setWeek("6");
}if(format.equals("07")){
work.setWeek("7");
}if(format.equals("08")){
work.setWeek("8");
}if(format.equals("09")){
work.setWeek("9");
}if(format.equals("10")){
work.setWeek("10");
}if(format.equals("11")){
work.setWeek("11");
}if(format.equals("12")){
work.setWeek("12");
}
点击后按钮字体颜色改变
$("#星期六").click(function () {
//清空其它同类按钮选中颜色
$('[id^="星期"]').css("color", "#000000");//按钮原来颜色
//点击后变色
$("#星期六").css("color", "#FF8B29")
})
时间格式转换
1.Calendar 转化 String
Calendar calendat = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = sdf.format(calendar.getTime());
2.String 转化Calendar
String str="2012-5-27";
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Date date =sdf.parse(str);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
3.Date 转化String
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
String dateStr=sdf.format(new Date());
4.String 转化Date
String str="2012-5-27";
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Date date= sdf.parse(str);
5.Date 转化Calendar
Calendar calendar = Calendar.getInstance();
calendar.setTime(new java.util.Date());
6.Calendar转化Date
Calendar calendar = Calendar.getInstance();
java.util.Date date =calendar.getTime();
7.String 转成 Timestamp
Timestamp ts = Timestamp.valueOf("2012-1-14 08:11:00");
8.Date 转 TimeStamp
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = df.format(new Date());
Timestamp ts = Timestamp.valueOf(time);
动态拼接
str +='<dd>'+
'<a οnclick="a(\''+datetimeon+'\')" class="site-demo-active" οnmοuseοver="this.className=\'after2\'"\n' +
' οnmοuseοut="this.className=\'shiftOut2\'" data-url="/userInformation" data-id="'+datetimeon+'"\n' +
'data-title="软件上传" data-type="tabAdd">'+" "+datetimeon+'</a>'+
'</dd>'
类型转换
int i=1;
Integer w1 = new Integer(i);//int转包装类
String s =String.valueOf(w1);//包装类转string类型
Integer.parseInt(s)//String转int
js中的时间函数
/**返回日期的字符串表示形式。字符串的格式取决于语言环境。* /
toString():字符串;
/**以字符串值的形式返回日期。* /
toDateString():字符串;
/**以字符串值的形式返回时间。* /
toTimeString():字符串;
/**返回一个字符串值,该字符串值适合于主机环境的当前语言环境。* /
toLocaleString():字符串;
/**以字符串值的形式返回一个日期,该值适合于主机环境的当前语言环境。* /
toLocaleDateString():字符串;
/**返回一个适合于主机环境当前语言环境的字符串值。* /
toLocaleTimeString():字符串;
返回从UTC时间1970年1月1日午夜开始,以毫秒为单位存储的时间值。* /
valueOf():数量;
获取以毫秒为单位的时间值。* /
getTime():数量;
/**使用本地时间获取年份。* /
getFullYear():数量;
/**使用协调世界时(UTC)获取年份。* /
getUTCFullYear():数量;
/**使用本地时间获取月份。* /
getMonth():数量;
/**使用通用协调时间(UTC)获取日期对象的月份。* /
getUTCMonth():数量;
/**使用本地时间获得每月的日期。* /
获取当前日期():数量;
/**使用世界协调时间(UTC)获取每月的日期。* /
getUTCDate():数量;
/**使用本地时间获取星期几。* /
getDay():数量;
/**使用协调世界时(UTC)获取星期几。* /
getUTCDay():数量;
/**使用本地时间获取日期中的小时。* /
getHours():数量;
/**使用通用协调时间(UTC)获取日期对象中的小时值。* /
getUTCHours():数量;
/**获取使用本地时间的日期对象的分钟数。* /
getMinutes():数量;
/**使用通用协调时间(UTC)获取日期对象的分钟数。* /
getUTCMinutes():数量;
使用本地时间获取日期对象的秒数。* /
getSeconds():数量;
/**使用协调世界时(UTC)获取日期对象的秒数。* /
getUTCSeconds():数量;
/**使用本地时间获取日期的毫秒数。* /
可以():数量;
/**使用协调世界时(UTC)获取日期对象的毫秒数。* /
getUTCMilliseconds():数量;
/**获取本地计算机上的时间与通用协调时间(UTC)之间的分钟差。* /
getTimezoneOffset():数量;
js限制输入框的内容
例如,输入大于0的正整数
<input onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}">
1,文本框只能输入数字代码(小数点也不能输入)
<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">
2,只能输入数字,能输小数点. IE only
<input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">
<input name=txt1 onchange="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';}">
3,数字和小数点方法二
<input type=text t_value="" o_value="" onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onblur="if(!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;else{if(this.value.match(/^\.\d+$/))this.value=0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}">
封装成单独的函数:
function keyPress(ob) {
if (!ob.value.match(/^[\+\-]?\d*?\.?\d*?$/)) ob.value = ob.t_value; else ob.t_value = ob.value; if (ob.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/)) ob.o_value = ob.value;
}
function keyUp(ob) {
if (!ob.value.match(/^[\+\-]?\d*?\.?\d*?$/)) ob.value = ob.t_value; else ob.t_value = ob.value; if (ob.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/)) ob.o_value = ob.value;
}
function onBlur(ob) {
if(!ob.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))ob.value=ob.o_value;else{if(ob.value.match(/^\.\d+$/))ob.value=0+ob.value;if(ob.value.match(/^\.$/))ob.value=0;ob.o_value=ob.value};
}
只需在调用,传入this对象即可!
4,只能输入字母和汉字
<input onkeyup="value=value.replace(/[\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))" maxlength=10 name="Numbers">
5,只能输入英文字母和数字,不能输入中文
<input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')">
6,只能输入数字和英文
<input onKeyUp="value=value.replace(/[^\d|chun]/g,'')">
7,小数点后只能有最多两位(数字,中文都可输入),不能输入字母和运算符号:
<input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false">
8,小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号:
<input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')">
动态获取时长(可配置上班时间,下班时间)目前无法跨月和年,默认周末上班
//7.5小时工时
var hoursCountOfDay = 7.5;
//上午工作开始小时
var amHourStart = 8;
//上午工作开始分钟
var amMinutesStart = 30;
//上午下班开始小时
var amHourEnd = 12;
//上午下班开始分钟
var amMinutesEnd = 0;
//下午上班开始小时
var pmHourStart = 14;
//下午上班开始分钟
var pmMinutesStart = 0;
//下午下班开始小时
var pmHourEnd = 18;
//下午下班开始分钟
var pmMinutesEnd = 0;
var amStart = amHourStart + amMinutesStart / 60;
console.log("amStart "+amStart)//8.5 早上上班时间
var amEnd = amHourEnd + amMinutesEnd / 60;
console.log("amEnd "+amEnd)//12 早上下班时间
var pmStart = pmHourStart + pmMinutesStart / 60;
console.log("pmStart "+pmStart)//14 下午上班时间
var pmEnd = pmHourEnd + pmMinutesEnd / 60;
console.log("pmEnd "+pmEnd)//18 下午下班时间
var middleTime = pmStart - amEnd;// 下午上班时间-早上上班时间=2
console.log("middleTime "+middleTime)//中段时间 2
var amTime=amEnd-amStart //早上总上班时间
console.log("amTime "+amTime)//早上总上班时间
var pmTime=pmEnd-pmStart //下午总上班时间
console.log("pmTime "+pmTime)//下午总上班时间
function calculate() {
var s = document.getElementById("fd_37a0a04c0dab6c");
var startTime = new Date($("#fd_37890f21c6823e").val());
var endTime = new Date($("#fd_3789230b467526").val());
if (startTime >= endTime) {//当开始时间大于结束时间
return 0;
}
let hours = getHours(startTime, endTime);
let days = hours ;
$("#fd_3789223f7f48d0").val(days)
}
function getHours(startTime, endTime) {
let hours=0;//总小时
if (startTime.getFullYear()===endTime.getFullYear()) {//开始时间和结束时间年份相同
if (startTime.getMonth() === endTime.getMonth()) {//开始时间和结束时间月份相同
let startHours = startTime.getHours()//开始时间的小时
let startMinutes = startTime.getMinutes()//开始时间的分钟
let startDate = startTime.getDate()//开始时间的日期
let endDate = endTime.getDate()//结束时间的日期
let endHours = endTime.getHours()//结束时间的小时
let endMinutes = endTime.getMinutes()//结束时间时间的分钟
let allstartDate;//第一天上班时间 时:分
let allendDate;//最后一天上班时间 时:分
let i1= startMinutes / 60
allstartDate=startHours+i1
console.log("第一天上班时间 "+allstartDate)
let i2= endMinutes / 60
allendDate=endHours+i2
console.log("最后一天上班时间 "+allendDate)
/*
* amStart:早上上班时间
* amEnd:早上下班时间
* pmStart:下午上班时间
* pmEnd:下午下班时间
* */
if (allstartDate<amStart&allstartDate>0){//不在8.30范围
allstartDate=amStart
}else if (allstartDate>pmEnd&allstartDate<23.99){
allstartDate=pmEnd
}else if (allstartDate>amEnd&allstartDate<pmStart){
allstartDate=pmStart
}
if (allendDate<amStart&allendDate>0){//不在8.30范围
allendDate=amStart
}else if (allendDate>pmEnd&allendDate<23.99){
allendDate=pmEnd
}else if (allendDate>amEnd&allendDate<pmStart){
allendDate=pmStart
}
console.log("第一天请假时间2 "+allstartDate)
console.log("最后一天请假时间2 "+allendDate)
let first_day=0;//第一天
let last_day =0;//最后一天
let same_day =0;//同一天
if (startDate===endDate){//如果是同一天的话
console.log("-------------同一天-------------------")
if (allendDate>=pmStart&allendDate<=pmEnd){
same_day=allendDate-allstartDate-middleTime
}else {
same_day=allendDate-allstartDate
}
console.log("同一天时间 "+same_day)
}else {
console.log("-------------第一天-------------------")
if (allstartDate>=amStart&allstartDate<=amEnd){//如果输入时间是早上的话
first_day=amEnd-allstartDate+pmTime
console.log("第一天请假时间(早) "+first_day)
}
if (allstartDate>=pmStart&allstartDate<=pmEnd) {//如果输入时间是下午的话
first_day=pmEnd-allstartDate
console.log("第一天请假时间(午) "+first_day)
}
console.log("第一天"+first_day)
console.log("-------------------最后一天-----------------------")
if (allendDate<=amStart){
last_day+=0
}else {
if (allendDate>=amStart&allendDate<=amEnd){//如果输入时间是早上的话
last_day=amEnd-allendDate+pmTime
console.log("最后一天请假时间(早) "+last_day)
}
if (allendDate>=pmStart&allendDate<=pmEnd) {//如果输入时间是下午的话
last_day=allendDate-pmStart+amTime
console.log("最后一天请假时间(午) "+last_day)
}
}
console.log("-------------------循环-----------------------")
console.log("开始日期"+startDate)
console.log("结束日期"+endDate)
for (let i = startDate+1; i <=endDate-1; i++) {//中间时间
console.log("循环 "+i)
hours += hoursCountOfDay
}
}
hours+=first_day+last_day+same_day
console.log("最后一天 "+last_day)
console.log("总时间 "+hours)
return hours;
}
}
}