>  기사  >  웹 프론트엔드  >  js에서 휴일을 결정하는 방법

js에서 휴일을 결정하는 방법

亚连
亚连원래의
2018-06-15 11:09:427111검색

캘린더를 제어하고 국가 법정 공휴일을 만나고 싶은데 이 기능을 어떻게 구현하나요? 실제로 구현 코드는 매우 간단합니다. 아래에서는 js를 사용하여 휴일을 판단하는 예제 코드를 공유하겠습니다. 필요한 친구는 이를 참조할 수 있습니다.

효과 표시:

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title></title>
  <script src="jquery.min.js" type="text/javascript"></script>
  <script src="date.js" type="text/javascript"></script>
</head>
<script>
	/*************************************************************
*  判断某天是不是工作日
*  
*  @ date     {Date}       要判断的日期(0000-00-00)  
**************************************************************/
//2017年节假日
var jrdate_2017 = ["2017-01-01","2017-01-02","2017-01-27","2017-01-27","2017-01-27","2017-01-28","2017-01-29","2017-01-30","2017-01-31","2017-02-01","2017-02-02","2017-04-02","2017-04-03","2017-04-04","2017-04-29","2017-04-30","2017-05-01","2017-05-28","2017-05-29","2017-05-30","2017-10-01","2017-10-02","2017-10-03","2017-10-04","2017-10-05","2017-10-06","2017-10-07","2017-10-08"];
//2017年调休日
var txr_2017 = ["2017-01-22","2017-02-04","2017-04-01","2017-05-27","2017-09-30"];
//2018年节假日
var jrdate_2018 = ["2018-01-01","2018-02-15","2018-02-16","2018-02-17","2018-02-18","2018-02-19","2018-02-20","2018-02-21","2018-04-05","2018-04-06","2018-04-07","2018-04-29","2018-04-30","2018-05-01","2018-06-16","2018-06-17","2018-06-18","2018-09-22","2018-09-23","2018-09-24","2018-10-01","2018-10-02","2018-10-03","2018-10-04","2018-10-05","2018-10-06","2018-10-07"];
//2018年调休日
var txr_2018 = ["2018-02-11","2018-02-24","2018-04-08","2018-04-28","2018-09-29","2018-09-30"];
var num = 0;
function isWorkday(date_String) {
	//debugger;
  var date = !date_String ? new Date() : new Date(date_String);
  var is_jr_2017 = $.inArray(date_String, jrdate_2017);
  var is_jr_2018 = $.inArray(date_String, jrdate_2018);
  var is_tx_2017 = $.inArray(date_String, txr_2017);
  var is_tx_2018 = $.inArray(date_String, txr_2018);
  if(is_jr_2017!=-1 || is_jr_2018!=-1){
  	return; //"节假日";
  }
  var getday = date.getDay();
  if (getday == 0 || getday == 6) {
  	if(is_tx_2017!=-1 || is_tx_2018!=-1){
  		num++;
  		return;// &#39;调休日&#39;;
  	}
    return;// &#39;休息日&#39;;
  }
  else {
  	if(is_tx_2017!=-1 || is_tx_2018!=-1){
  		num++;
  		return;// &#39;调休日&#39;;
  	}
  	num++;
    return;// &#39;工作日&#39;;
  }
   //num;
}
//var d_arr = []; //时间段内所有日期
function getDayInfo(startDate,endDate){
	var bd = new Date(startDate),be = new Date(endDate); 
  var bd_time = bd.getTime(), be_time = be.getTime(),time_diff = be_time - bd_time; 
  d_arr = [];
  num = 0;
  for(var i=0; i<= time_diff; i+=86400000){ 
      var ds = new Date(bd_time+i).Format("yyyy-MM-dd"); 
      isWorkday(ds);
      //d_arr.push(ds) 
  } 
  console.log(num); 
  console.log(d_arr); 
  $("#show").html("呀!这段时间我们一共上"+num+"天班呢。");
}
function getInfo(info){
	
	var startDate = $("#startDate").val();
	var endDate = $("#endDate").val();
	getDayInfo(startDate,endDate);
	//console.log(isWorkday(startDate));
}
// 调用
//alert(isWorkday(&#39;2016-12-10&#39;));
	
</script>
<body>
	<h3>填写时间算算我们能上几天班?!</h3>
  <p id="p1">
    开始时间:<input id="startDate" type="text" value="2018-02-01"></input>
    截止日期:<input id="endDate" type="text" value="2018-02-28"></input>
  	<input type="button" onclick = &#39;getInfo()&#39; value="点击获取工作日天数"></input>
  </p>
  <p>
  	<strong><span id = "show"></span></strong>
  </p>
</body>
</html>

ps: 이제 코드를 공유하겠습니다. 모든 공휴일은 js를 기준으로 판단하세요. 구체적인 코드는 다음과 같습니다.

// JavaScript Document
calendar = new Date();
month = calendar.getMonth();
date = calendar.getDate();
if ((month == 0) && (date == 1)) document.write("元旦");
if ((month == 1) && (date ==13 )) document.write("除夕");
if ((month == 1) && (date ==14 )) document.write("春节/情人节");
if ((month == 2) && (date == 1)) document.write("国际海豹日");
if ((month == 2) && (date == 8)) document.write("国际劳动妇女节/中国保护母亲河日");
if ((month == 2) && (date == 12)) document.write("植树节");
if ((month == 3) && (date == 1)) document.write("愚人节");
if ((month == 3) && (date == 5)) document.write("清明节");
if ((month == 4) && (date == 1)) document.write("国际劳动节");
if ((month == 4) && (date == 9)) document.write("母亲节");
if ((month == 5) && (date == 1)) document.write("国际儿童节");
if ((month == 5) && (date == 26)) document.write("国际禁毒日");
if ((month == 7) && (date == 1)) document.write("建军节");
if ((month == 7) && (date == 15)) document.write("日本无条件投降日/世纪婚纱日");
if ((month == 7) && (date == 16)) document.write("七夕情人节");
if ((month == 9) && (date == 20)) document.write("世界厨师日");
if ((month == 9) && (date == 22)) document.write("世界传统医药日");
if ((month == 9) && (date == 24)) document.write("联合国日/世界发展信息日");
if ((month == 9) && (date == 25)) document.write("世界骨质疏松日/抗美援朝纪念日/环卫工人节");
if ((month == 9) && (date == 31)) document.write("世界勤俭日/中国男性健康日");
if ((month == 11) && (date == 24)) document.write("平安夜"); 
if ((month == 11) && (date == 25)) document.write("圣诞节");

위 내용은 제가 모두를 위해 정리한 내용입니다. 앞으로 모든 분들께 도움이 되길 바랍니다.

관련 기사:

JS에서 메시지 보드 기능을 구현하는 방법

nodejs에서 OAuth2.0 인증 서비스 인증을 구현하는 방법

webpack에서 vue 프로젝트를 빌드하는 방법

위 내용은 js에서 휴일을 결정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.