日付が、たとえば2013年5月6日のような場合、
20130506
という風に月、日の前に0を埋める。
このようなときの注意点あれこれ
■【日付のみ】Datepickerは日付、フォーマットチェックしない。
DatePickerのdateformatを指定しても、
かならずしも、そのフォーマットで受け取れるとは限らない。
DatePickerが出ているのに、そのDatePickerをまったく無視して、
入力欄に不正の文字をいれてしまうと、その入力を受け取ってしまう。
例えば、
http://jqueryui.com/datepicker/
のview sourceで出てくるソースを以下のように修正し、
でたらめな日付を入れて、
「日付」ボタンをクリックすると
ちゃんと値が取れる=入ってしまっている。
つまり、Datepickerは入力支援をしてくれるだけであり、
入力値の保証は無いみたいに見える。
■if文で10以下なら0をつける場合
比較するとき、完璧に数字で比較しているならいいんだけど、
文字で"10"と比較してしまうと、
6は、10より「小さい」数字だけど、
6は、10より「大きい」文字なので(6と1を比較するので、6のほうが大きい)
となり、大小関係がおかしくなる。
たとえば、
で、6とか入れてみると判る。
このように数字と文字を10,"10"と明示してある場合には
間違えないが、これを変数に入れてしまったりしたときに、
気がつかないことがありえる。
■キレイな0うめ
ここで、キレイな0埋めの例を見たので、メモメモ。
【JavaScript】ゼロパディング(ゼロ埋め)
http://www.ore-memo.com/447.html
val = 9; // 9にち
val = ("00"+ val).slice(-2);
0埋めしたい最大数分0をたし、桁数分-で値を入れる。
今回は2桁なので、00と-2
こうすると、1234のように、もともと幅が長い場合は34のように
下2桁が切られるが、ちゃんと2桁になる。
サンプル
20130506
という風に月、日の前に0を埋める。
このようなときの注意点あれこれ
■【日付のみ】Datepickerは日付、フォーマットチェックしない。
DatePickerのdateformatを指定しても、
かならずしも、そのフォーマットで受け取れるとは限らない。
DatePickerが出ているのに、そのDatePickerをまったく無視して、
入力欄に不正の文字をいれてしまうと、その入力を受け取ってしまう。
例えば、
http://jqueryui.com/datepicker/
のview sourceで出てくるソースを以下のように修正し、
<!doctype html> <html> <head> <title>jQuery UI Datepicker</title> <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> <link rel="stylesheet" href="/resources/demos/style.css" /> <script> $(function() { $( "#datepicker" ).datepicker({ dateFormat: "yy/mm/dd" }); }); function getdate() { val = $( "#datepicker" ).val(); alert(val); } </script> </head> <body> <p>Date: <input type="text" id="datepicker" /></p> <BUTTON onclick="getdate()">日付</BUTTON> </body> </html> |
でたらめな日付を入れて、
「日付」ボタンをクリックすると
ちゃんと値が取れる=入ってしまっている。
つまり、Datepickerは入力支援をしてくれるだけであり、
入力値の保証は無いみたいに見える。
■if文で10以下なら0をつける場合
比較するとき、完璧に数字で比較しているならいいんだけど、
文字で"10"と比較してしまうと、
6は、10より「小さい」数字だけど、
6は、10より「大きい」文字なので(6と1を比較するので、6のほうが大きい)
となり、大小関係がおかしくなる。
たとえば、
|
で、6とか入れてみると判る。
このように数字と文字を10,"10"と明示してある場合には
間違えないが、これを変数に入れてしまったりしたときに、
気がつかないことがありえる。
■キレイな0うめ
ここで、キレイな0埋めの例を見たので、メモメモ。
【JavaScript】ゼロパディング(ゼロ埋め)
http://www.ore-memo.com/447.html
val = 9; // 9にち
val = ("00"+ val).slice(-2);
0埋めしたい最大数分0をたし、桁数分-で値を入れる。
今回は2桁なので、00と-2
こうすると、1234のように、もともと幅が長い場合は34のように
下2桁が切られるが、ちゃんと2桁になる。
サンプル
|