ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptの日付オブジェクトをstring_javascriptスキルに整形する実装方法

JavaScriptの日付オブジェクトをstring_javascriptスキルに整形する実装方法

WBOY
WBOYオリジナル
2016-05-16 17:03:541283ブラウズ

JavaScript によって提供される日付の書式設定は単純すぎます。一般的に、アプリケーションは独自に書式設定メソッドを実装する必要があります。これは一般的なニーズを満たすことができるはずです。日付テンプレート。テキストを区切り文字として使用することもでき、yyyyMMdd のような区切り文字なしの書式設定もサポートします。
日付テンプレートの日付要素を変換するには正規表現を使用します。 yyyy、MM、dd などの文字列と区切り文字を配列に入力し、日付要素を実際の値に置き換えて日付文字列
を形成します。 実装には 2 つの関数があり、

を貼り付けることで実行できます。

拡張方法:

この例では、年、月、日、時、分、秒、ミリ秒の要素のみがサポートされています。曜日を表示する必要がある場合は、値に w = getDay() を追加して、通常の値を変更できます。 y |M |d |H |m |s |S |w |[^yMdHmsSw]/g への式で十分です。

月または週を完全な英語または簡体字英語で表示する必要がある場合は、cfg に対応する構成を追加できます。cfg に例を追加しただけです。

使用法:

var date = new Date(); var str = formatDate(date, 'yyyy year MMM month dd day');

str の値は 2012 年 7 月 29 日です




コードをコピーします コードは次のとおりです:/**
* 整数形式
* @param number:number 形式設定する整数
* @param fmt:string 整数形式
*/
function formatNumber(number) , fmt ) {
数値 = 数値 '';
if (fmt.length >number.length) {
return fmt.substring(number.length) 数値
}
return番号;
}

/**
* 日付を文字列表現としてフォーマットします * @param datetime:Date フォーマットされる日付オブジェクト

* @param format:String Date format
*/
function formatDate(datetime, format) {
var cfg = {
MMM : ['一', '二', '三', '四' 、'5'、'6'、'7'、'8'、'9'、'10'、'11'、'12']、
MMMM : ['1'、'2'、'3' ', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve']
},
値 = {
y : datetime.getFull Year()、
M : datetime.getMonth()、
d : datetime.getDate()、
H : datetime.getHours()、
m : datetime.getMinutes(),
s : datetime.getSeconds(),
S : datetime.getMilliseconds()
}/*正規表現を使用して日付形式の各要素を分割します* /
var elems = format.match(/y​​ |M |d |H |m |s |S |[^yMdHmsS]/g);
//日付要素を実際の値に置き換えます
(var i = 0; i < elems.length; i ) {
if (cfg[elems[i]]) {
elems[i] = cfg[elems[i]][values[elems [ i].charAt(0)]];
} else if (values[elems[i].charAt(0)]) {
elems[i] = formatNumber(values[elems[i].charAt ( 0)], elems[i].replace(/./g, '0'));
}
}

return elems.join('')
}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。