Ext.Date adalah singleton yang merangkum serangkaian fungsi operasi tanggal dan memperluas fungsi tanggal javascript. Berikut ini mencantumkan beberapa fungsi yang umum digunakan.
Fungsi Dasar:
Mari kita lihat beberapa contoh secara detail di bawah ini:
// ext.date.add (tanggal, interval, nilai) Tambah atau kurangi waktu hingga saat ini. Fungsi ini tidak mengubah nilai objek tanggal asli, tetapi mengembalikan objek tanggal baru. // @param {date} tanggal objek tanggal asli. // @param {string} unit nilai interval, Anda dapat memilih ext.date.day, ext.date.hour, ext.date.minute, ext.date.month, // ext.date.second, ext.date.year, ext.date.milli. // @param {angka} nilai nilai yang perlu ditambahkan objek tanggal. // @return {date} Mengembalikan objek tanggal setelah nilai tambah. // contoh var tanggal = ext.date.add (tanggal baru ('10/29/2006 '), ext.date.day, 5); // tambahkan 5 hari konsol.log (tanggal); // Hasil Pengembalian Jum 03 Nov 2006 00:00:00 GMT+0800 (Waktu Standar China) Tanggal Var = ext.Date.Add (Tanggal baru ('10/29/2006 '), ext.date.day, -5); // Kurangi 5 hari, jika nilainya negatif, itu akan berkurang. console.log (tanggal); // Hasil Pengembalian Sel 24 Okt 2006 00:00:00 GMT+0800 (Waktu Standar China) Tanggal Var = ext.Date.Add (Tanggal baru ('10/29/2006 '), ext.date.year, 2); // tambahkan 2 tahun konsol.log (tanggal); // Hasil Pengembalian Rab 29 Okt 2008 00:00:00 GMT+0800 (Waktu Standar China) // ext.date.between (Tanggal, Mulai, Akhir) Tentukan apakah tanggal antara awal dan akhir. // @param {date} tanggal tanggal yang akan dinilai. // @param {date} start // @param {date} end // @return {boolean} Jika tanggal mengembalikan true antara start dan end, jika tidak mengembalikan false. // contoh var tanggal = tanggal baru ('10/29/2006 '); var start = Tanggal baru ('10/5/2006 '); var end = tanggal baru ('11/15/2006 '); Ext.date.between (tanggal, start, end); // Kembalikan true // ext.date.cleartime (tanggal, klon) Tetapkan waktu tanggal menjadi 00 jam, 00 menit, 00 detik, 000 milidetik. // @param {date} date // @param {bollean} klon parameter opsional. Jika benar, salinan tanggal dikembalikan, dan jika salah, tanggal itu sendiri dikembalikan, yang default menjadi false. // @return {date} mengembalikan tanggal yang ditetapkan. // contoh var tanggal = tanggal baru ('10/30/2012 14:30:00 '); Ext.date.cleartime (tanggal); // Kembalikan Sel TUE 30 Okt 2012 00:00:00 GMT+0800 (Waktu Standar China) // ext.date.clone (Tanggal) Salinan tanggal dikloning. // @param {date} tanggal // @return {date} mengembalikan tanggal yang dikloning. // contoh var orig = tanggal baru ('10/30/2012 '); var copy = ext.date.clone (orig); // Kloning nilai // ext.date.format (tanggal, format) format tanggal dan kembalikan string yang diformat. // @param {date} tanggal tanggal. // @param {string} format tanggal format, y-year, m-month, d-day, h-24 jam, i-minute, s-seconds // @return {string} mengembalikan string yang diformat. // contoh var tanggal = tanggal baru ('10/20/2012 14:30:00 '); Ext.date.format (tanggal, 'ymd h: i: s'); // 2012-10-20 14:30:00 ext.date.format (tanggal, 'y tahun m bulan d tanggal h: i: s'); // 20 Oktober 2012 14:30:00 // ext.date.getdayofyear (tanggal) Dapatkan tanggal tahun ini // @param {tanggal} tanggal tanggal. // @return {number} Mengembalikan jumlah hari, dengan kisaran nilai 0 ~ 364, dan jika itu adalah tahun kabisat, ada 365. // contoh var tanggal = tanggal baru ('10/20/2012 14:30:00 '); Ext.date.getdayofyear (tanggal); // return 293 // ext.date.getdaysinmonth (tanggal) Dapatkan tanggal adalah hari bulan ini // @param {tanggal} tanggal tanggal. // @return {number} Mengembalikan jumlah hari. // contoh var tanggal = tanggal baru ('10/20/2012 14:30:00 '); Ext.date.getdayofyear (tanggal); // Kembalikan 31 // ext.date.getFirstDateOfMonth (tanggal) Dapatkan hari pertama bulan di mana tanggal berada // @param {tanggal} tanggal tanggal. // @return {date} mengembalikan hari pertama bulan itu. // contoh var tanggal = tanggal baru ('10/20/2012 14:30:00 '); Ext.date.getFirstDateOfmonth (tanggal); // Kembalikan Senin 01 Oktober 2012 00:00:00 GMT+0800 (Waktu Standar China) // ext.date.getFirstdayofmonth (Tanggal) Dapatkan minggu pada hari pertama bulan di mana tanggal berada // @param {tanggal} tanggal tanggal. // @return {number} Mengembalikan minggu hari pertama bulan itu, dengan kisaran nilai 0 ~ 6. // contoh var tanggal = tanggal baru ('10/20/2012 14:30:00 '); Ext.date.getFirstdayOfmonth (tanggal); // return 1, menunjukkan Senin // ext.date.getLastDateOfMonth (tanggal) Dapatkan hari terakhir bulan di mana tanggal berada // @param {tanggal} tanggal tanggal. // @return {date} mengembalikan hari terakhir bulan Anda berada di. // contoh var tanggal = tanggal baru ('10/20/2012 14:30:00 '); Ext.date.getLastDateOfmonth (tanggal); // Kembalikan Rab 31 Okt 2012 00:00:00 GMT+0800 (Waktu Standar China) // ext.date.getLastdayOfMonth (Tanggal) Dapatkan minggu hari terakhir bulan di mana tanggal berada // @param {tanggal} tanggal tanggal. // @return {number} Mengembalikan minggu hari terakhir bulan itu, dengan kisaran nilai 0 ~ 6. // contoh var tanggal = tanggal baru ('10/20/2012 14:30:00 '); Ext.date.getLastdayOfmonth (tanggal); // return 3, menunjukkan hari Rabu // ext.date.getWeekofyear (tanggal) Dapatkan minggu tahun di mana tanggal berada // @param {tanggal} tanggal tanggal. // @return {number} Mengembalikan minggu tahun ini, dengan kisaran nilai 1 ~ 53. // contoh var tanggal = tanggal baru ('10/20/2012 14:30:00 '); Ext.date.getWeekofyear (tanggal); // return 42 // ext.date.isleapyear (tanggal) adalah tahun di mana tanggal berada? // @param {date} tanggal tanggal. // @return {boolean} true berarti tahun lompatan, false berarti tahun datar. // contoh var tanggal = tanggal baru ('10/20/2012 14:30:00 '); Ext.date.isleapyear (tanggal); // mengembalikan true // ext.date.now () mengembalikan jumlah milidetik dari waktu saat ini hingga 1 Januari 1970. // date.now () sudah mengimplementasikan fungsi yang sama di Chrome, IE9 dan IE10. // @return {number} Mengembalikan jumlah milidetik. // Contoh var timestamp = ext.date.now (); // 135166679575 VAR Tanggal = Tanggal Baru (Timestamp); // Rab 31 Okt 2012 14:57:59 GMT+0800 (waktu standar China) // ext.date.parse (input, format, ketat) date.parse () memiliki fungsi yang sama sesuai dengan tanggal pembuatan string input. // @param {String} Input Date String. // @param {string} format tanggal format. // @param {boolean} ketat verifikasi validitas string input, yang false secara default. // @param {date} mengembalikan tanggal pembuatan. // contoh var input = '31 Oktober 2012 14:30:00'; var format = 'y tahun m bulan d hari h: i: s'; var date = ext.date.parse (input, format, true); // Rab 31 Okt 2012 14:30:00 GMT+0800 (Waktu Standar China)Contoh: Menerapkan Kontrol Pemilihan Tanggal dengan Minggu (Minggu)
1. Pertanyaan:
Bisakah Anda menyelesaikan masalah minggu dengan sempurna dengan menggunakan Ext JS?
Dalam artikel pertama dari seri ini, dikatakan bahwa datepicker Ext tidak dapat dilihat selama seminggu dan perlu diperluas dengan sendirinya.
Namun, ada masalah saat berkembang:
Objek tanggal bahasa JavaScript dimulai pada hari Minggu setiap minggu.
Namun, metode GetWeekofyear Ext JS mengikuti ISO-8601, dan dimulai setiap minggu dari hari Senin. (Ada metode lain yang tidak mengikuti standar ini, EXT JS memadukan standar representasi tanggal dan waktu yang berbeda).
Ext.date.getWeekofyear Nilai pengembalian metode ini adalah angka antara 1 dan 53.
Dengan cara ini, beberapa masalah akan muncul:
Tampilan Kontrol Tampilan Tanggal Ext JS dimulai pada hari Minggu: (SMTWTFS (Minggu Senin Selasa .. Sabtu))
Namun, ketika Anda mendapatkan minggu pada waktu yang dipilih, itu dimulai dari hari Minggu. menuju ke:
Setiap hari Minggu akan menjadi 1 lebih sedikit (misalnya, pada hari Minggu, 2013/08/18, harus 34 minggu, tetapi metode ini dihitung sebagai akhir minggu sebelumnya, 33 minggu)
tanggal = tanggal baru ("2013/08/18");
var minggu = ext.date.getWeekofyear (tanggal);
peringatan ("minggu ="+minggu);
Kontrol tanggal EXT JS ditampilkan selama 42 hari secara default, sehingga akan ada masalah dalam interaksi antara dua tahun.
Apakah 53 minggu itu tahun itu? Ini masih minggu pertama tahun depan.
2. Solusi:
Menggabungkan objek tanggal JS dan ext.Date dari Ext JS, kami menyadari perolehan string minggu ini.
Minggu adalah hari pertama setiap minggu
Jumlah minggu per tahun berasal dari (1-52). Jika melebihi 52 minggu, itu akan dihitung hingga minggu pertama tahun berikutnya. Misalnya, 2013/12/29 adalah 53 minggu 2013, yang dihitung hingga minggu pertama 2014.
Kembali ke format minggu seperti "W1334"
/ * * kembali sebagai W1334 () 2013/08/20 * 1. Jika Minggu ==> Minggu = Minggu +1 * getWeekofyear (ext gunakan ISO-8601, minggu mulai bulan) * Tanggal JS (minggu mulai Minggu) * 2. Jika minggu> 52 ==> Tahun = Tahun +1; Minggu = Minggu - 52; * 3. Jika bulan == 11 (12 bulan) dan minggu <2 ==> tahun = tahun +1; */function getWeekstrofDate (date) {var Weekstr = null; if (date! = null) {weekstr = "w"; var dateYear = date.getLyEar (); var dateWeek = ext.date.getWeekofyear (tanggal); var firstdayofmonth = ext.date.getFirstdayOfmonth (tanggal); var day = date.getDate (); var month = date.getMonth (); // hari kerja 0-6 var hari kerja = date.getday (); if (Weekday === 0) {DateWeek ++; } // minggu> 52 ==> tahun +1 if (bulan == 11) {if (dateWeek> 52) {dateYear += 1; DateWeek -= 52; } else if (dateWeek <2) {dateYear += 1; }} var bertahun -tahun = DateYear.ToString (); bertahun -tahun = bertahun -tahun. Substring (2,4); var dateWeekstr = dateWeek.toString (); if (dateWeekstr.length <2) {dateWeekstr = "0" + dateWeekstr; } Weekstr += bertahun -tahun; Weekstr += DateWeekstr; } return weekstr;}