Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 107,992

HOME > Client Script Forum > ช่วยหน่อยครับเรื่อง ปฏิทิน ติดตรงปี พศ รบกวนผู้รู้ด้วยครับผม



 

ช่วยหน่อยครับเรื่อง ปฏิทิน ติดตรงปี พศ รบกวนผู้รู้ด้วยครับผม

 



Topic : 061629



โพสกระทู้ ( 56 )
บทความ ( 0 )



สถานะออฟไลน์




Code (JavaScript)
<script language="javascript">
function clsCalendar(){
		//#######################################
		// Power by Dan2k
		// email : [email protected]
		// date: 05/02/2552
		// #######################################
		this.months=new Array(" มกราคม "," กุมภาพันธ์ "," มีนาคม "," เมษายน "," พฤษภาคม "," มิถุนายน " ," กรกฏาคม "," สิงหาคม "," กันยายน "," ตุลาคม "," พฤศจิกายน "," ธันวาคม ");
		this.days =new Array("วัน อาทิตย์ ที่ ","วัน จันทร์ ที่ ","วัน อังคาร ที่ ","วัน พุธ ที่ ","วัน พฤหัสบดี ที่ ","วัน ศุกร์ ที่ ","วัน เสาร์ ที่ ");
		this.date=new Date();//วันเดือนปี ปัจจุบัน
		this.day=this.date.getDay();//วันที่ปัจจุบัน ในสัปดห์ อ - ส (เริ่มจาก 0-6)
		this.d=this.date.getDate();//;วันที่ปัจจุบัน เริ่มจาก 1
		this.m=this.date.getMonth();//เดือน 0-11
		this.y=this.date.getFullYear();//ปี คศ
		this.realy=this.y;// เก็บค่าปีปัจจุวัน
		this.reald=this.d;//เก็บค่าวันที่ปัจจุบัน
		this.realm=this.m;//เก็บค่าเดือนปัจจุบัน
		this.hh=this.date.getHours();//เก็บค่าชั่วโมง ส่วนนี้ไม่ได้ใช้
		this.mm=this.date.getMinutes();//เก็บค่านาที ส่วนนี้ไม่ได้ใช
		this.ss=this.date.getSeconds();//เก็บค่าวินาที ส่วนนี้ไม่ได้ใช
		this.object="";// obj ที่เราต้องการ ส่งค่าวันที่ไปให้ เช่น input box
		this.objID="";//ชื่อ เป็นสตริงชื่อ ของ obj ที่เราต้องการส่งค่าวันที่ไปให้ เช่นชื่อ ของ input box
		this.format="";
		this.clsName="";
		this.calendar=function(){// el_name คือ ชื่อของ text box ที่เอาไว้ใส่ วันที่
			el_name=this.objID;
			var outString="";
			today=((this.m*1)+1)+"/01/"+this.y;//วันแรกของเดือน
			last=((this.m*1)+2)+"/0/"+this.y;// หาวันสุดท้ายของเดือน
			today_date=new Date(today);//นำมาสร้างเป็นวันที่
			today_day=today_date.getDay();//นำมาหาวันที่
			last_date=new Date(last);//นำมาสร้างวันที่
			lastday=last_date.getDate();// หาวันที่สุดท้าย
			count=1; // วันที่เริ่มนับจากวันที่ 1
			week=0;// แทนวันในสัปดาห์ 0-6 ( อ - ส )
			fax=0;

			outString=outString+"<table  width='150px' style='font-family:ms sans serif,sans serif;font-size:15px;	line-height:14px;	border-style:solid;	border-collapse:collapse;	border-width:1px;border-color:#499BEE;background-color:#EEEEEE;table-layout:fixed;'>";
			outString=outString+"<tr bgcolor=#006699 height=17px>";
			outString=outString+"<td colspan=7 align=center  height=20px >";
			outString=outString+"<select   style='font-family:ms sans serif;font-size:10px;width:95px'  onchange='"+this.clsName+".mchange(this.value)'>";
			for (var intLoop = 0; intLoop < this.months.length; intLoop++){
					outString=outString+"<OPTION   value="+intLoop+"  " +(this.m == intLoop ? "Selected" : "") + ">" + this.months[intLoop]+"</option>";
			}
			outString=outString+"</select>";
			outString=outString+"<select  style='font-family:ms sans serif;font-size:10px;' onchange='"+this.clsName+".ychange(this.value)'>";
			for (var intLoop=1950; intLoop < this.realy+15; intLoop++){
					outString=outString+"<OPTION  value="+intLoop+"  " +	(this.y == intLoop ? "Selected" : "") + ">" + intLoop+"</option>";
			}
			outString=outString+"</select  >";
			outString=outString+"<tr>";
			outString=outString+"<td style='font-family:ms sans serif,sans serif;font-size:14px;line-height:14px;border-style:solid;border-collapse:collapse;border-width:1px;width:15px;text-align:center;' bgcolor='#FE7E8B'>อา</td>";
			outString=outString+"<td style='font-family:ms sans serif,sans serif;font-size:14px;line-height:14px;border-style:solid;border-collapse:collapse;border-width:1px;width:15px;text-align:center;' bgcolor='#FFFFCC'>จ</td>";
			outString=outString+"<td style='font-family:ms sans serif,sans serif;font-size:14px;line-height:14px;border-style:solid;border-collapse:collapse;border-width:1px;width:15px;text-align:center;' bgcolor='#FFCCFF'>อ</td>";
			outString=outString+"<td style='font-family:ms sans serif,sans serif;font-size:14px;line-height:14px;border-style:solid;border-collapse:collapse;border-width:1px;width:15px;text-align:center;' bgcolor='#99FFCC'>พ</td>";
			outString=outString+"<td style='font-family:ms sans serif,sans serif;font-size:14px;line-height:14px;border-style:solid;border-collapse:collapse;border-width:1px;width:15px;text-align:center;' bgcolor='#FFCC99'>พฤ</td>";
			outString=outString+"<td style='font-family:ms sans serif,sans serif;font-size:14px;line-height:14px;border-style:solid;border-collapse:collapse;border-width:1px;width:15px;text-align:center;' bgcolor='#CCFFFF'>ศ</td>";
			outString=outString+"<td style='font-family:ms sans serif,sans serif;font-size:14px;line-height:14px;border-style:solid;border-collapse:collapse;border-width:1px;width:15px;text-align:center;' bgcolor='#CC99FF'>ส</td>";
			outString=outString+"</tr>";
			while(count <= lastday){ // คำนวนจากวันที่ 1- วันที่สุดท้ายของเดือน
				if(week>6){ // หนึ่งอาทิตย์มี 7 วัน 0-6
					week=0;
				}
				if(week==0){// วันแรกของสัปดาห์ ให้ ขึ้นแถวใหม่
					outString=outString+"<tr>";
				}
				if(week == today_day || fax==1){ // today_day คือ วัน อ - ส จากค่าที่เราใส่วันที่สร้างไป
					fax=1
					titlestring =this.days[week]+count+" "+this.months[this.m]+" พ.ศ. "+((this.y*1)+543)//เป็นวันที่แสดงตรง title
					outString=outString+"<td style='font-family:ms sans serif,sans serif;font-size:14px;line-height:14px;	border-style:solid;order-collapse:collapse;border-width:1px;width:15px;text-align:right;'  onclick='"+this.clsName+".send("+count+","+this.m+","+this.y+",1);'  title='"+ titlestring +"'   onmouseover=\"this.style.backgroundColor='#0099CC';\"  onmouseout=\"this.style.backgroundColor='';\"  >";
					if(count==this.d && this.m==this.date.getMonth() && this.y==this.date.getYear()){
						outString=outString+"<font color=red>";
					}
					outString=outString+""+count;
					if(count==this.d){
						outString=outString+"</font>";
					}
					outString=outString+"</td>";
					count++;
				}else{
					outString=outString+"<td style='font-family:ms sans serif,sans serif;font-size:14px;line-height:14px;	border-style:solid;order-collapse:collapse;border-width:1px;width:15px;text-align:right;'>&nbsp;</td>";
				}
				if(week==6 || count>lastday){
					if(count>lastday ){
						for(i=week+1;i<=6;i++){
							outString=outString+"<td style='font-family:ms sans serif,sans serif;font-size:14px;line-height:14px;	border-style:solid;order-collapse:collapse;border-width:1px;width:15px;text-align:right;'>&nbsp;</td>";
						}
					}
					outString=outString+"</tr>";
				}
				week++;
			}
			outString=outString+"<tr>";
			outString=outString+"<td colspan=7 align=right  bgcolor='#333399'><span id=today style='font-family:ms sans serif;font-size:10px;color:#FFFFFF;font-weight:bold;'>&nbsp;</span><span onclick='document.all.calendar.style.display=\"none\" ;'  style='font-family:ms sans serif;font-size:10px;color:#ffffff;font-weight:bold;text-align:right;cursor:hand;'>&nbsp;| ปิด</span></td>";
			outString=outString+"</tr>";
			//ถ้าต้องการแสดงรุปแบบวันที่ได้ก็เปิด  ต้องไปเพิม รุปแบบใน send function ด้วย
			/*outString=outString+"<tr>";
			outString=outString+"<td colspan=7 style='font-family:ms sans serif,sans serif;font-size:14px;line-height:14px;border-style:solid;border-collapse:collapse;border-width:1px;width:15px;text-align:center;'><span  style='font-family:ms sans serif;font-size:10px;color:#669999;font-weight:bold;'>รูปแบบ:</span>";
			outString=outString+"<select onchange='"+this.clsName+".setFormat(this.value);send("+this.d+","+this.m+","+this.y+",2);' style='font-family:ms sans serif;font-size:10px;width:100px;' >"
			outString=outString+"<option value=0  "+(this.format=="0"?"  selected ":"")+">dd-mm-yy</option>";
			outString=outString+"<option value=1  "+(this.format=="1"?"  selected ":"")+">dd-mm-yyyy</option>";
			outString=outString+"<option value=2  "+(this.format=="2"?"  selected ":"")+">d-m-yy</option>";
			outString=outString+"<option value=3  "+(this.format=="3"?"  selected ":"")+">d-m-yyyy</option>";
			outString=outString+"<option value=4  "+(this.format=="4"?"  selected ":"")+">yy-mm-dd</option>";
			outString=outString+"<option value=5   "+(this.format=="5"||this.format==""?"  selected ":"")+">yyyy-mm-dd</option>";
			outString=outString+"<option value=6  "+(this.format=="6"?"  selected ":"")+">yy-m-d</option>";
			outString=outString+"<option value=7  "+(this.format=="7"?"  selected ":"")+"> yyyy-m-d</option>";
			outString=outString+"</select>"
			outString=outString+"</td>";
			outString=outString+"</tr>";*/
			outString=outString+"</table>";
			document.all.calendar.innerHTML=outString;
			this.setOffset(el_name);
			this.send(this.reald,this.realm,this.realy,2)
		}//end function
		this.mchange=function(vmonth){
			this.m=vmonth;
			this.set('n');
		}
		this.ychange=function(vyear){
			this.y=vyear
			this.set('n');
		}
		this.send=function(dd,mm,yy,tset){ //เพิ่มรูปแบบวันนี้ได้จากตรงนี้
			// รูปแบบของวันที่มี
			// 0  dd-mm-yy
			// 1  dd-mm-yyyy
			// 2  d-m-yy
			// 3  d-m-yyyy
			// 4  yy-mm-dd
			// 5 yyyy-mm-dd
			// 6 yy-m-d
			// 7 yyyy-m-d
			if(dd<10){
					dd="0"+dd;
			}else{
				dd=dd;
			}
			mm++;
			if(mm<10){
					mmm="0"+mm;
			}else{
				mmm=mm;
			}
			yyy=yy+"";
			yyy=yyy.substring(2,4);

			switch (this.format)
			{
				case "0":
					strdate=ddd+"-"+mmm+"-"+yyy;
					break;
				case "1":
					strdate=ddd+"-"+mmm+"-"+yy;
					break;
				case "2":
					strdate=dd+"-"+mm+"-"+yyy
					break;
				case "3":
					strdate=dd+"-"+mm+"-"+yy;
					break;
				case "4":
					strdate=yyy+"-"+mmm+"-"+ddd;
					break;
				case "5":
					strdate=yy+"-"+mmm+"-"+ddd; //yyyy-mm-dd
					break;
				case "6":
					strdate=yyy+"-"+mm+"-"+dd;
					break;
				case "7":
					strdate=yy+"-"+mm+"-"+dd;
					break;
				 default:
					strdate=dd+"-"+mmm+"-"+(parseInt(yy)+543);                                       

			}
			if(tset==1){
				this.object.value=strdate;
				document.all.calendar.style.display="none";
			}else{
				document.all.today.innerText="วันนี้ "+strdate;
			}
		}
		this.set=function(ch){
			if(ch=="y"){
				this.m=this.date.getMonth();
				this.y=this.date.getYear();
			}
			this.calendar();
			document.all.calendar.style.display="";
		}
		this.setOffset=function(el_name){
				var left;
				var top;
				left = 0;
				top = 0;
				var elem = document.all[el_name];
				do
				{
					left += elem.offsetLeft;
					top += elem.offsetTop;
					if (elem.tagName == "BODY")
						break;
					elem = elem.offsetParent;
				} while  (1 > 0);
				document.all.calendar.style.pixelLeft=left;
				document.all.calendar.style.pixelTop=top+document.all[el_name].offsetHeight+1;
				document.all.calendar.style.display='inline';
			}
			this.setFormat=function(type){
				this.format=type;
			}
			this.genCalendar=function(el_name,tformat,clsName){
				// สร้าง div ขึ้นมาชื่อว่า calendar
				if(typeof document.all.calendar=="undefined"){
				  var aElement=document.createElement("<div id='calendar' style='position:absolute;display:none;width:80px;height:60px;background-color:red' />");
					document.body.insertBefore(aElement);
				}
				this.objID=el_name;
				this.object=document.all[el_name];
				this.format=tformat;
				this.clsName=clsName;
				this.calendar();
			}
}//end clsCalendar
var calendar=new clsCalendar();
</script>

input name="birthday" type="text" onClick="calendar.genCalendar('birthday','','calendar');" value="" readonly>
<img src='img/calendar.png' alt="คลิ๊กเลือกวันเกิด" onClick="calendar.genCalendar('birthday','','calendar');" /> 



คืองี้ครับ ได้ code ปฏิทินมา แต่ผมลองแก้ๆ ดูแล้ว ลอง+543 ดูตรง this.y=this.date.getFullYear(); แล้ว

มันเป็น พศ ครับ แต่ ปรากฏว่าวันที่มันไม่ตรงครับ(ใน select เลือกปี) ไม่รู้จะแก้ตรงไหนบ้างครับ ผู้รู้ช่วยชี้แนะด้วยครับ

ตรงอื่นได้หมดแล้วครับ



Tag : JavaScript









ประวัติการแก้ไข
2011-06-14 10:30:11
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-06-14 10:27:45 By : nutsza View : 1149 Reply : 1
 

 

No. 1



โพสกระทู้ ( 56 )
บทความ ( 0 )



สถานะออฟไลน์


ช่วยหน่อยคับผม






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-06-14 11:26:16 By : nutsza
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยหน่อยครับเรื่อง ปฏิทิน ติดตรงปี พศ รบกวนผู้รู้ด้วยครับผม
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2019 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่