|
|
|
ช่วยหน่อยครับเรื่อง ปฏิทิน ติดตรงปี พศ รบกวนผู้รู้ด้วยครับผม |
|
|
|
|
|
|
|
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;'> </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;'> </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;'> </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;'> | ปิด</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
|
|
|
|
|
Date :
2011-06-14 10:27:45 |
By :
nutsza |
View :
1639 |
Reply :
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยหน่อยคับผม
|
|
|
|
|
Date :
2011-06-14 11:26:16 |
By :
nutsza |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|