Ext.Dateは、一連の日付操作関数をカプセル化し、JavaScriptの機能を拡張するシングルトンです。以下には、いくつかの一般的に使用される関数がリストされています。
基本機能:
以下にいくつかの例を詳しく見てみましょう。
// ext.date.add(日付、間隔、値)これまでの時間を追加または短縮します。この関数は、元の日付オブジェクトの値を変更するのではなく、新しい日付オブジェクトを返します。 // @param {date}日付元の日付オブジェクト。 // @param {string}間隔値ユニット、ext.date.day、ext.date.hour、ext.date.minute、ext.date.month、// ext.date.second、ext.date.year、ext.date.milliを選択できます。 // @param {number}値日付オブジェクトを追加する必要がある値。 // @return {date}付加値の後に日付オブジェクトを返します。 // var var date = ext.date.add(new Date('10/29/2006 ')、ext.date.day、5); // 5日間console.log(date); //リターン結果金曜日2006年11月3日00:00:00 GMT+0800(中国標準時間)var = ext.date.add(new Date('10/29/2006 ')、ext.date.day、-5); // 5日間を短縮します。値が負の場合、減少します。 console.log(date); //リターン結果火曜日2006年10月24日00:00:00 GMT+0800(中国標準時間)var = ext.date.add(new Date('10/29/2006 ')、ext.date.year、2); // 2年Console.log(date);を追加します。 //リターン結果水曜日2008年10月29日00:00:00 GMT+0800(中国の標準時間) // @param {date}審査される日付の日付。 // @param {date} start // @param {date} end // @return {boolean}日付が開始と終了の間にtrueを返す場合、それ以外はfalseを返します。 //例var date = new Date('10/29/2006 '); var start = new Date('10/5/2006 '); var end = new Date('11/15/2006 '); ext.date.between(date、start、end); // trueを返す// ext.date.cleartime(日付、クローン)日付を00時間、00分、00秒、000ミリ秒に設定します。 // @param {date} date // @param {bollean}クローンオプションパラメーター。 trueの場合、日付のコピーが返され、falseの場合、日付自体が返され、デフォルトはfalseになります。 // @return {日付}設定日を返します。 //例var date = new Date('10/30/2012 14:30:00 '); ext.date.cleartime(date); // 2012年10月30日10月30日00:00:00 GMT+0800(中国の標準時間)// ext.date.clone(日付)クローン化された日付のコピー。 // @param {date} date // @return {date}クローン日を返します。 //例var Orig = new Date('10/30/2012 '); var copy = ext.date.clone(orig); //値をクローンします// @param {date}日付。 // @param {string}フォーマット日付形式、y年、mヶ月、d-day、h-24時間、i-minute、s-seconds // @return {string}フォーマットされた文字列を返します。 //例var date = new Date('10/20/2012 14:30:00 '); ext.date.format(date、 'ymd h:i:s'); // 2012-10-20 14:30:00 ext.date.format(date、 'y year m month d date h:i:s'); // 2012年10月20日14:30:00 // ext.date.getDayofyear(日付)今年の日付を取得// @param {date}日付。 // @return {number}は、値の範囲が0〜364の日数を返します。LeapYearの場合、365。 ext.date.getDayofyear(日付); // 293を返します。 // @return {number}日数を返します。 //例var date = new Date('10/20/2012 14:30:00 '); ext.date.getDayofyear(日付); // 31 // ext.date.getFirstDateofMonth(日付)日付がある月の最初の日を取得// @param {date}日付を取得します。 // @return {date}は、月の初日に返されます。 //例var date = new Date('10/20/2012 14:30:00 '); ext.date.getFirstDateofMonth(date); // 2012年10月1月1月00:00:00 GMT+0800(中国標準時間) // @return {number}は、月の最初の日の週を返し、値の範囲は0〜6です。 //例var date = new Date('10/20/2012 14:30:00 '); ext.date.getFirstdayofmonth(date); // 1を返し、月曜日を示します// @return {date}あなたがいる月の最終日を返します。 ext.date.getLastDateofMonth(日付); // 2012年10月31日水戻り00:00:00 GMT+0800(中国標準時間) // @return {number}は、月の最終日の週を返し、値の範囲は0〜6です。 //例var date = new Date('10/20/2012 14:30:00 '); ext.date.getLastDayofMonth(date); // 3を返します。 // @return {number}は、1〜53の値範囲で年の週を返します。 //例var date = new Date('10/20/2012 14:30:00 '); ext.date.getWeekofyear(日付); // 42 // ext.date.isleapyear(日付)を返す日付はありますか? // @param {date}日付。 // @return {boolean} trueは跳躍年を意味し、falseは平坦な年を意味します。 //例var date = new Date('10/20/2012 14:30:00 '); ext.date.isleapyear(日付); // trueを返す// ext.date.now()は、現在から1970年1月1日までのミリ秒数を返します。 // @return {number}ミリ秒数を返します。 //例varタイムスタンプ= ext.date.now(); // 13516666679575 var date = new Date(Timestamp); // 2012年10月31日水曜日14:57:59 GMT+0800(中国標準時間)// ext.date.parse(入力、形式、strict)date.parse()は、入力文字列の作成日に従って同様の関数を持っています。 // @param {string}入力日付文字列。 // @param {string}フォーマット日付形式。 // @param {boolean} strict入力文字列の有効性を検証します。これはデフォルトではfalseです。 // @param {date}作成日を返します。 //例var input = '2012年10月31日14:30:00'; var format = 'y year m month d day h:i:s'; var date = ext.date.parse(input、format、true); // 2012年10月31日水14:30:00 GMT+0800(中国の標準時間)例:週(週)に日付選択制御を実装する
1。質問:
Ext JSを使用して、週の問題を完全に解決できますか?
このシリーズの最初の記事では、ExtのDatePickerはその週には見えず、単独で拡張する必要があると言われています。
ただし、拡大する際には問題があります。
JavaScript言語の日付オブジェクトは、毎週日曜日に開始されます。
ただし、Ext JSのGetWeekOfyearメソッドはISO-8601に従い、月曜日から毎週開始されます。 (この標準に従わない他の方法があり、Ext JSは異なる日付と時刻の表現基準をミックスします)。
ext.date.getWeekofyearこのメソッドの返品値は、1〜53の数です。
このようにして、いくつかの問題が発生します。
Ext JSの日付ディスプレイコントロールの表示は日曜日に開始されます:(SMTWTFS(日曜日の火曜日..土曜日))
ただし、選択した時間までに週を取得すると、日曜日から始まります。につながる:
毎週日曜日は1人少なくなります(たとえば、2013/08/18年日曜日には34週間になるはずですが、この方法は前週の終わり、33週間として計算されます)
date = new Date( "2013/08/18");
var week = ext.date.getweekofyear(date);
alert( "week ="+week);
ext JS日付制御はデフォルトで42日間表示されるため、2年間の相互作用に問題が発生します。
その年は53週ですか?それはまだ翌年の最初の週です。
2。解決策:
JSの日付オブジェクトとext.dateのext.dateを組み合わせて、週の文字列の取得を実現します。
日曜日は毎週の初日です
年間週数は(1-52)からです。 52週を超えると、翌年の最初の週にカウントされます。たとえば、2013/12/29年は2013年の53週間であり、2014年の最初の週にカウントされます。
「w1334」のような週に戻る
/ * * w1334()2013/08/20 * 1。if Sunday ==> week +1 * getWeekofyear(ext Use ISO-8601、Week Begont Month)週=週-52; *3。月== 11(12か月)および週<2 ==> year = year +1; */function getWeekStrofdate(date){var weekstr = null; if(date!= null){weekstr = "w"; var dateyear = date.getTullyear(); var dateweek = ext.date.getweekofyear(date); var firstdayofmonth = ext.date.getfirstdayofmonth(date); var day = date.getDate(); var month = date.getmonth(); //平日0-6 var weekday = date.getday(); if(weekday === 0){dateweek ++; } //週> 52 ==> year +1 if(month == 11){if(dateweek> 52){dateyear += 1; DateWeek- = 52; } else if(dateweek <2){dateyear += 1; }} var yeartr = dateyear.toString(); yearstr = yeartr.substring(2,4); var dateweekstr = dateweek.toString(); if(dateweekstr.length <2){dateweekstr = "0" + dateweekstr; } weekstr += yeartr; weekstr += dateweekstr; } return weekstr;}