| ブログ |

【jQuery】日付入力用カレンダーをjQueryプラグイン用に移植中 のメモなど




[ sample ]






Opera8.5 ok
Firefox 2.0.0.9 ok
ie 6 ok
Safari 3.0.3 ok


[ update ]

2007-11-12-01 日付フォーマットの変換
2007-11-11 日付フォーマットの変換を今までのcase文から、replace文に変更。 これで劇的にフレキシブルになります。

今までは、次のような指定方法で、日付のフォーマットパターンはcase文であらかじめ決まった数種類しか使えませんでしたが、、、
Old type 今までの変換

wrtCalendarLay(this,event,'mm月dd日')       →8月3日
wrtCalendarLay(this,event,'yyyy/mm/dd[曜]') →2007/8/3[金]
wrtCalendarLay(this,event,'mm/dd')          →8/3

        'yyyy' → 2005 
        'yyyy/mm' → 2005/3 
        'yyyy/mm/dd' → 2002/2/19 
        'mm/dd' → 12/24 
        'mm' → 3 
        'dd' → 31 
        'yyyy/mm/dd[曜]' → 2002/6/4 [火] 
        'yyyy/mm/dd(曜)' → 2002/6/4 (火) 
        'yyyy年mm月dd日(曜)'→ 2002年2月19日(火) 
        'mm月dd日' → 1月1日 
        'mm月dd日(曜)' → 1月1日(木) 
今度は、フォーマット用の文字列だけをreplaceするので、 文章へ埋め込むことさえできて、フォーマット形式は自由自在です。
New Type 今度の変換

  $("ほげ").起動メソッド('MM月DD日')        →08月03日
  $("ほげ").起動メソッド('M月D日')          →8月3日
  $("ほげ").起動メソッド('YYYY/MM/DD[W]')   →2007/08/03[金]
  $("ほげ").起動メソッド('YYYY/M/D[W]')     →2007/8/3[金]
  $("ほげ").起動メソッド('MM/DD')           →08/03

  //フォーマット形式は自由自在

  $("ほげ").起動メソッド('YYYY年のM月D日はW曜日です')→2007年の8月3日は金曜日です
  $("ほげ").起動メソッド('id:30000-YYYYMMDD-00')→2007年の8月3日は金曜日です

  //日付以外で、Y,M,D,W,h,n,s の文字を使うときは\Yや\\Wなど(ダブルバックスペース「\\」)でエスケープします

  $("ほげ").起動メソッド('TI\\ME:YYYYMMDD')   →TIME:20070803

        'YYYY' → 2005 
        'YYYY/MM' → 2005/03 
        'YYYY-MM-DD' → 2002-02-19 
        'YYYY/M/D' → 2002/2/19 
        'MM/DD' → 12/01 
        'M/D' → 12/1 
        'MM' → 03 
        'M' → 3 
        'DD' → 02 
        'YYYY/MM/DD[W]' → 2002/06/04 [火] 
        'YYYY/M/D(W)' → 2002/6/4 (火) 
        'YYYY年MM月DD日(W)'→ 2002年02月19日(火) 
        'MM月DD日' → 01月01日 
         'M月D日(W)' → 1月1日(木) 
         
         'date : M月D日(W)' → date : 1月1日(木) 
         'YYYY年M月のD日はW曜日でござるよ。' → 2007年8月の3日は金曜日でござるよ。

 凡例 (注 : 大文字小文字は区別します)
    Y 年
    M 月
    D 日
    W 曜
    h 時
    m 分
    s 秒

(注 : フォーマット用の文字列YMDWhmsは大文字小文字を区別します。 日付以外で、Y,M,D,W,h,n,s の文字を使うときは\\Yや\\Wなど(ダブルバックスペース「\\」)でエスケープします。 *エスケープは\\Yや\\Wなどの該当文字列を、一旦、「$0_10進アスキーコード$」に変えて、フォーマット後戻すようにしていますので、 文字列、$0_089$、$0_077$、$0_068$、$0_087$、$0_104$、$0_109$、$0_115$は使えません。ソース→ YMDW.replace("\\Y","$0_089$").replace("\\M","$0_077$").replace("\\D","$0_068$").replace("\\W","$0_087$") )

デフォルトは、W3C-DTF の Complete date: YYYY-MM-DD (例 1997-07-16) でどうかな?
参考:W3C NOTE-datetime Date and Time Formats
参考:日付の表記に関するノート W3Cの日時フォーマット

2007-11-11 <input class="jquery-calendear" type="text"> だけで、jsに触らずに起動

2007-11-11 cfg.offset.x と cfg.offset.y を引数cfgのプロパティに追加