Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # JavaScriptの日付オブジェクトを指定した書式でフォーマットする汎用ファンクションを作成します。
- 日付オブジェクトを文字列に変換していくのではなく、指定したフォーマットの文字列に日付オブジェクトの対象の値を置換していくイメージです。
- このやり方なら例えば曜日が必要な場合でも簡単に拡張できます。
- // date: 日付オブジェクト
- // format: 書式フォーマット
- function formatDate (date, format) {
- format = format.replace(/yyyy/g, date.getFullYear());
- format = format.replace(/MM/g, ('0' + (date.getMonth() + 1)).slice(-2));
- format = format.replace(/dd/g, ('0' + date.getDate()).slice(-2));
- format = format.replace(/HH/g, ('0' + date.getHours()).slice(-2));
- format = format.replace(/mm/g, ('0' + date.getMinutes()).slice(-2));
- format = format.replace(/ss/g, ('0' + date.getSeconds()).slice(-2));
- format = format.replace(/SSS/g, ('00' + date.getMilliseconds()).slice(-3));
- return format;
- };
- // 2017年1月2日3時4分5秒6ミリ秒
- var date = new Date(2017, 0, 2, 3, 4, 5, 6);
- console.log(formatDate(date, 'yyyyMMdd')); // "20170102"
- console.log(formatDate(date, 'yyyyMMddHHmmssSSS')); // "20170102030405006"
- console.log(formatDate(date, 'yyyy/MM/dd')); // "2017/01/02"
- console.log(formatDate(date, 'yyyy-MM-dd')); // "2017-01-02"
- console.log(formatDate(date, 'HH:mm')); // "03:04"
- console.log(formatDate(date, 'HH:mm:ss:SSS')); // "03:04:05:006"
- ## 2017/1/2などのように、0埋めが不要な場合は以下ようにします。
- function formatDate (date, format) {
- format = format.replace(/yyyy/g, date.getFullYear());
- format = format.replace(/M/g, (date.getMonth() + 1));
- format = format.replace(/d/g, (date.getDate()));
- format = format.replace(/H/g, (date.getHours()));
- format = format.replace(/m/g, (date.getMinutes()));
- format = format.replace(/s/g, (date.getSeconds()));
- format = format.replace(/S/g, (date.getMilliseconds()));
- return format;
- };
- // 2017年1月2日3時4分5秒6ミリ秒
- var date = new Date(2017, 0, 2, 3, 4, 5, 6);
- console.log(formatDate(date, 'yyyy/M/d')); // "2017/1/2"
- console.log(formatDate(date, 'yyyy-M-d')); // "2017-1-2"
- console.log(formatDate(date, 'H:m')); // "3:4"
- console.log(formatDate(date, 'H:m:s:S')); // "3:4:5:6"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement