ใช้ ปีพุทธศักราช ใน JQueryUI - DatePicker

Posted 11/01/2010 11:25 by nantcom

image

นอกเรื่องนิดนะครับวันนี้

หนึ่งในความเซ็งของผมเวลาทำงานกับปฏิทินก็คือ ประเทศไทยดูเหมือนว่าจะเป็นประเทศเดียวที่ใช้พุทธศักราช ทำให้ไม่มีใครยอมทำปฏิทินที่แสดงปีเป็นพุทธศักราชเลย และผมต้องมาตามแก้ให้ทุกที แม้กระทั่งตอน Silverlight ผมก็ไป Debate กับเขาอย่างดุเดือดที่ Office เขาเลยทีเดียว (งาน MVP Summit) แต่ก็ดูเหมือนจะไม่ได้ผล จนผมต้องมาทำเองอยู่ดี

พอหนีมา J-Query ก็ยังไม่พ้นครับ แม้ว่าจะมี Localization ให้ แต่วันที่ ก็เริ่มวันอาทิตย์ แล้วปีก็ยังแสดงเป็น 2010 อีก เซ็งจริตมาก

 image

ผมเลยต้องมาแก้อีกตามเคยนิดหน่อย เพื่อให้ได้แบบนี้

image

ซึ่งผมได้ทำการแก้สองจุดครับ จุดแรกคือไฟล์ ui.datepicker-th.js โดยเปลี่ยน FirstDay จาก 0 เป็น 1 เพื่อแสดงปฎิทินจากวันจันทร์แทนวันอาทิตย์

image

จุดที่สองคือในไฟล์ uiแล้วก็ +543 ตอน Format Date (Function formatDate)

 

กับตอน Display (function _generateHTML)

image

แล้วก็ ตอน Parse Date ก็เอาออกซะ 543 ใน function ParseDate (แน่นอนว่า Code นี้ใช้กับปีในอนาคตเกิน คศ 2500 และ พศ น้อยกว่า 2500 ไม่ได้นะครับ เหอๆ)

image

ถ้าต้องการนำไปใช้ เอา Code นี้ไปวางในไฟล์ jquery-ui-1.7.2.custom.min.js ได้เลยครับ อย่าลืมเอา datepicker ของเดิม ที่อยู่ในไฟล์นี้ ออกก่อนละ ถ้าอยากจะแก้อะไร เอา Source Code ได้จากที่นี่ครับ

เท่านั้นเองครับ :)

ร่วมให้กำลังใจนักเขียน

อ่านแล้วชอบใจ อยากให้กำลังใจกับผู้แต่งบทความนี้ ขอเชิญร่วมให้กำลังใจผ่าน Paysbuy/Paypal นะครับ ปลอดภัยเพราะทำงานผ่าน SSL และไม่มีค่าใช้จ่ายเพิ่มเติมครับ เว็บเราให้นักเขียน 100% ครับ

Comment ระบบเก่า

 

giffy2499 said:

Wow ๆ  แจ่มเลยคับ

แก้น้อยกว่า Caledar Extender ของ AjaxControlToolkit เลยคับ

เดียวลองเล่นมั่งสะแล้วคับ  อิ อิ

January 11, 2010 5:23 PM
 

nantcom said:

อิอิ ผมก็เซ็งเหมือนกัน อ้อ แล้วเพิ่งพบว่า เวลาใช้ ต้องใส่แบบนี้ครับ

$("datepickerTextbox").datepicker(

   onSelect : function() { } // ทำให้ไม่ตีกับ Validatopm

);

January 12, 2010 9:56 AM
 

bubuchan said:

เราเอาใช้แล้ว พบว่า ตรง dropdownlist พ.ศ. ยังแสดงเป็น พ.ศ. อยู่ไม่ทราบว่าต้อง set ค่าอะไรเพิ่มเติมมั้ยคะ เรา set

Culture="th-TH" ใน page เรียบร้อยแล้วค่ะ

April 21, 2010 10:37 AM
 

testpv said:

แล้วของ componentart มีใครเคยแก้ไขเป็น ปี พ.ศ. บ้างค่ะ

April 27, 2010 9:26 AM
 

Zicklerr said:

คือ ปฎิทิน ผมใช้ changeYear ด้วยทำไงให้ปีที่เลือกเป็น พศ อ่ะครับ

May 7, 2010 10:14 PM
 

chayaphol said:

@bubuchan

จุดที่ต้องแก้ไขสำหรับ drowdown ปี อยู่ประมาณบรรทัดที่ 7520 ครับ (// year selection)

for (; year <= endYear; year++) {

html += '<option value="' + year + '"' +

(year == drawYear ? ' selected="selected"' : '') +

'>' + (year+543) + '</option>';

}

โดยจะต้องบวกค่า year เพิ่ม

ในที่นี้ผมใช้ "altField" และเลือกแก้ไขเฉพาะจุดที่แสดงผลเท่านั้น (ต่างจากคุณ nantcom) เพราะ Database ผมเก็บปี ค.ศ. (ผู้ใช้จะเห็นเป็นปี พ.ศ. แต่เก็บข้อมูลเป็นปี ค.ศ.)

* line 6818 (inst.currentYear+543), 6996 (getNumber('y')-543), 7495 (drawYear+543), 7520 (year+543)

May 26, 2010 9:49 AM
(required)  
(optional)
(required)  
Add

DisQUS Comment (ยังเอ๋อๆ อยู่)

blog comments powered by Disqus