ホームページ ウェブフロントエンド jsチュートリアル jsの時刻と日付の書式設定のカプセル化関数_javascriptスキル

jsの時刻と日付の書式設定のカプセル化関数_javascriptスキル

May 16, 2016 pm 04:29 PM
js 日付 時間 フォーマット

js では、次のようなさまざまな属性メソッドが提供されています。メソッド ... ... などがありますが、ユーザーが自分で提供したテンプレート (パターン) に従って指定された時刻オブジェクトをフォーマットするための Java のようなメソッドは提供されていないため、小さなメソッドをカプセル化しました。みんなが笑ってくれるように -.- 何か良い提案があれば、惜しみなく与えてください。 使用される知識ポイント: 引数: このオブジェクトは、実行される関数とそれを呼び出す関数のパラメーターを表します。これは明示的に作成することはできませんが、長さ属性があり、配列と同様に「[]」構文を使用して取得できますが、配列ではありません。 typeof object: 演算子は、式のデータ型を表す文字列を返します。 6 つの可能性: 「数値」、「文字列」、「ブール値」、「オブジェクト」、「関数」、および「未定義」。 object.constructor: オブジェクトを作成する関数を表します。 オブジェクトは、 オブジェクトまたは関数の名前である必要があります。基になるデータにはこの属性がありません。 exec メソッド: 正規表現パターンを使用して文字列の検索を実行し、検索結果を含む配列を返します。一致するものが見つからない場合は、null を返します。同じ型の一致する要素が配列内に繰り返し現れることはありません。 str.split(Rex|str): 通常のオブジェクトまたは部分文字列を使用して文字列を部分文字列に分割し、結果を文字列配列として返します。 throw Error('msg'): メッセージ情報を含むエラーをスローします。 throw の後には任意の式を続けることができます。 for..in、三項演算子、substr の使用法もいくつかありますが、比較的単純なので説明しません。

コードスニペット:

コードをコピー

コードは次のとおりです:


/**
* ***js の時刻と日付の形式***

*


* テンプレート文字列は厳密な形式を採用しており、制限を超えると例外がスローされます。例: yyyy-mm-yyyy 形式は例外をスローします。 *


* 年の長さ: 2/4 桁
* q の 4 分の 1 桁の長さ
* M 月の長さ: 1 ~ 2 桁
* d-日の長さ: 1 ~ 2 桁
* H 時間の長さ: 24 時間形式の 1 ~ 2 桁、h: 12 時間形式
*分の長さ: 1 ~ 2 桁
* 秒の長さ: 1 ~ 2 桁
* Sミリ秒の長さ: 1桁固定
* @param {日付型オブジェクト} date
* @param {文字列型のテンプレート文字列} fmt
* @return 形式の時刻と日付の文字列
* @著者lyt
​*/
function DateFormat(date, fmt){
If (arguments.length != 2) // パラメータ番号の確認
throw Error('引数の長さが不正です');
If (!date || (typeof date != 'object') || (d.constructor != Date)) // パラメータの有効性検証
throw Error(arguments[0] ':型は Date 型ではありません');
If (/H /.test(fmt) && /h /.test(fmt))
throw Error("時間の形式が間違っています。同じ型は連続して 1 回しか出現できません!");
/* テンプレートパラメータの検証、通常の検証方法 */
var verify = function(Rex){
var arr = new RegExp(Rex).exec(fmt) // 一致する結果の配列を取得します
if (!arr) // 一致が失敗した場合は
を返します return "";
If (fmt.split(Rex).length > 2) // 同じ型が複数回出現します
throw Error("fmt フォーマット エラー: 同じ型は連続して 1 回しか出現できません!");
return arr[0];
};
/**
* 月、日、時、分、秒のユニバーサル一致置換を提供します
* @param {オブジェクトまたは属性キー} r
* @param {r は通常のオブジェクトに対応します} rex
**/
var common = function(r, rex) {
If(レン !=1 && レン !=2)
throw Error("月の形式エラー: M は 1/2 回しか出現できません");
len == 2 ? fmt=fmt.replace(rex, o[r].length==1 ? "0" o[r] : o[r]) : fmt=fmt.replace(rex, o[r]) ;
}
var o = { // データストレージオブジェクト
"y ": date.getFull Year() "", // 年
"q ": Math.floor((date.getMonth() 3) / 3), // 四半期
"M ": date.getMonth() 1 "", // 月
"d ": date.getDate() "", // 日
"H ": date.getHours() "", // 24 時間
"h ": date.getHours() "", // 12時
"m ": date.getMinutes() "", // 分
"s ": date.getSeconds() "", // 秒
"S ": date.getMilliseconds() // ミリ秒
}
for(var r in o) {
var rex、len、temp;
rex = 新しい RegExp(r);
temp = verify(rex) // 結果の文字列と一致します
; len = temp.length; // 長さ
If(!len || len == 0)
続行;
if(r == "y ") {
If(len !=2 && len != 4)
throw Error("年の形式エラー: y は 2/4 回しか出現できません");
len == 2 ? fmt=fmt.replace(rex, o[r].substr(2,3)) : fmt=fmt.replace(rex, o[r]);
} else if(r == "q ") {
if(len != 1)
throw Error("四半期形式エラー: q は 1 回しか出現できません");
fmt=fmt.replace(rex, o[r]);
} else if(r == "h ") {
If(レン !=1 && レン !=2)
throw Error("時間形式エラー: h は 1/2 回しか出現できません");
var h = (o[r] > 12 ? o[r]-12 : o[r]) "";
len == 2 ? fmt=fmt.replace(rex, h.length==1 ? "0" h : h) : fmt=fmt.replace(rex, h);
} else if(r == "S ") {
If(len != 1)
throw Error("ミリ秒形式エラー: S は 1 回しか出現できません");
fmt=fmt.replace(rex, o[r]);
// (r=="M " || r=="d " || r=="H " || r=="m " || r=="s ")
コモン(r, レックス)
                                                                                                              }
fmt を返します;
}

参考までに、デモンストレーション効果をいくつか示します:

コードをコピー コードは次のとおりです:
console.log(DateFormat(new Date(),' yyyy年 q 四半期 M 月 dd 日 HH 時 m 分 s 秒 S ミリ秒'));

コードをコピー コードは次のとおりです:
console.log(DateFormat(new Date(),' yyyyyearyy Q 四半期 M 月 dd 日 HH 時 m 分 s 秒 S ミリ秒'));

コードをコピー コードは次のとおりです:
console.log(DateFormat(new Date(),' yyyy年 q 四半期 M 月 dd 日 Hh 時 m 分 s 秒 S ミリ秒'));

コードをコピーします コードは次のとおりです。
console.log(DateFormat("I am not a time object",'yyyy 年 q 四半期 M 月 dd 日 Hh 時 m 分 s 秒 S ミリ秒'));

コードをコピー コードは次のとおりです:
console.log(DateFormat(new Date(),' yyyy年 q 四半期 MMM 月 dd 日 HH 時 m 分 s 秒 S ミリ秒'));

他のエフェクトを 1 つずつリストすることはしません。興味がある場合は、コードをコピーして直接テストして、バグや最適化が必要な領域がある場合は、自由に修正してください。

上記は、この非常に便利なカプセル化された関数の紹介です。友達が自分のプロジェクトで直接使用できるのではないでしょうか。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Weiboで過去のWeiboを日付で検索する方法_Weiboで過去のWeiboを日付で検索する方法 Weiboで過去のWeiboを日付で検索する方法_Weiboで過去のWeiboを日付で検索する方法 Mar 30, 2024 pm 07:26 PM

1. まずモバイル Web ブラウザを開き、Weibo Web バージョンを検索し、入力後に左上隅にあるアバター ボタンをクリックします。 2. 次に、右上隅の「設定」をクリックします。 3. 設定でバージョン切り替えオプションをクリックします。 4. 次に、バージョン スイッチでカラー バージョン オプションを選択します。 5. 「検索」をクリックして検索ページに入ります。 6. キーワードを入力した後、「Find People」をクリックします。 7. 検索完了インターフェイスが表示されたら、「フィルター」をクリックします。 8. 最後に、リリース時刻列に特定の日付を入力し、[フィルター] をクリックします。

Douyin レベル 10 のライトサインの価格はいくらですか?レベル 10 のファンサインを作成するには何日かかりますか? Douyin レベル 10 のライトサインの価格はいくらですか?レベル 10 のファンサインを作成するには何日かかりますか? Mar 11, 2024 pm 05:37 PM

Douyin プラットフォームでは、多くのユーザーがレベル認定の取得を熱望しており、レベル 10 の光サインは、Douyin に対するユーザーの影響力と認知度を示しています。この記事では、ユーザーがプロセスをよりよく理解できるように、Douyin のレベル 10 ライト ボードの価格と、このレベルに到達するまでにかかる時間を詳しく掘り下げます。 1. レベル10のDouyinライトサインの価格はいくらですか? Douyinの10段階ライトサインの価格は市場の変動や需要と供給によって異なり、一般的な価格は数千元から1万元の範囲です。この価格には主に照明サイン自体の費用と、場合によってはサービス料が含まれます。ユーザーは、Douyin の公式チャネルまたはサードパーティのサービス代理店を通じてレベル 10 のライト サインを購入できますが、虚偽または詐欺的な取引を避けるために、購入する際には法的チャネルに注意する必要があります。 2. レベル 10 のファンサインを作成するには何日かかりますか?レベル10のライトサインに到達する

PPT配布資料を印刷するときに自動的に表示される日付を削除する方法 PPT配布資料を印刷するときに自動的に表示される日付を削除する方法 Mar 26, 2024 pm 08:16 PM

1. まず最初に私が使用した方法について話します。おそらく誰もがそれを使用しているかもしれません。まず、[表示]——]備考テンプレート[を開きます。 2. 開封後、実際に日付が確認できる場所。 3. 最初にそれを選択して削除します。 4. 削除後、[マスタービューを閉じる]をクリックします。 5. もう一度印刷プレビューを開くと、日付がまだ残っていることがわかります。 6. 実際、この日付はここでは削除されていません。 [配布資料マスター]にあるはずです。下の写真を見てください。 7. 日付を見つけたら削除します。 8. プレビューを開いて確認すると、日付が表示されなくなります。注: 実際、この方法も非常に覚えやすいです。印刷された配布資料は配布資料なので、[配布資料マスター] を探す必要があります。

推奨: 優れた JS オープンソースの顔検出および認識プロジェクト 推奨: 優れた JS オープンソースの顔検出および認識プロジェクト Apr 03, 2024 am 11:55 AM

顔の検出および認識テクノロジーは、すでに比較的成熟しており、広く使用されているテクノロジーです。現在、最も広く使用されているインターネット アプリケーション言語は JS ですが、Web フロントエンドでの顔検出と認識の実装には、バックエンドの顔認識と比較して利点と欠点があります。利点としては、ネットワーク インタラクションの削減とリアルタイム認識により、ユーザーの待ち時間が大幅に短縮され、ユーザー エクスペリエンスが向上することが挙げられます。欠点としては、モデル サイズによって制限されるため、精度も制限されることが挙げられます。 js を使用して Web 上に顔検出を実装するにはどうすればよいですか? Web 上で顔認識を実装するには、JavaScript、HTML、CSS、WebRTC など、関連するプログラミング言語とテクノロジに精通している必要があります。同時に、関連するコンピューター ビジョンと人工知能テクノロジーを習得する必要もあります。 Web 側の設計により、次の点に注意してください。

エルデンリングクリアまでどれくらいかかりますか? エルデンリングクリアまでどれくらいかかりますか? Mar 11, 2024 pm 12:50 PM

プレイヤーはエルデンズ サークルでプレイするときにゲームのメイン プロットを体験し、ゲームの実績を収集できます。多くのプレイヤーはエルデンズ サークルをクリアするのにどれくらい時間がかかるか知りません。プレイヤーのクリア プロセスは 30 時間です。エルデン リングをクリアするにはどれくらい時間がかかりますか? 答え: 30 時間です。 1. この 30 時間のクリアタイムはマスターのようなスピードパスを指すものではありませんが、多くのプロセスも省略されます。 2. より良いゲーム体験を得たい場合、または完全なプロットを体験したい場合は、継続時間により多くの時間を費やす必要があります。 3. プレイヤーがすべて集める場合、約 100 ~ 120 時間かかります。 4.BOSSを本筋だけで磨く場合は50~60時間程度かかります。 5. すべてを体験したい場合: 基本時間は 150 時間です。

小紅書で作品を公開する時間を設定するにはどうすればよいですか?作品の公開時期は正確ですか? 小紅書で作品を公開する時間を設定するにはどうすればよいですか?作品の公開時期は正確ですか? Mar 24, 2024 pm 01:31 PM

Xiaohonshu は、生活と知識の共有に満ちたプラットフォームで、ますます多くのクリエイターが自由に意見を表現できるようになりました。小紅書でより多くの注目といいねを獲得するには、コンテンツの質に加えて、作品を公開する時期も重要です。では、Xiaohongshu が作品を公開する時間をどのように設定すればよいでしょうか? 1. 小紅書で作品を公開する時間を設定するにはどうすればよいですか? 1. ユーザーのアクティブ時間を把握する まず、小紅書ユーザーのアクティブ時間を明確にする必要があります。一般に、午後 8 時から午後 10 時までと週末の午後は、ユーザーのアクティビティが活発になる時間帯です。ただし、この期間は視聴者グループや地理などの要因によっても異なります。したがって、ユーザーのアクティブ期間をより適切に把握するには、さまざまなグループの行動習慣をより詳細に分析することをお勧めします。ユーザーの生活を理解することで

Linux のファイル時間表示テクニックの詳細な説明 Linux のファイル時間表示テクニックの詳細な説明 Feb 21, 2024 pm 01:15 PM

Linux のファイル時間表示テクニックの詳細な説明 Linux システムでは、ファイル時間情報はファイルの管理と変更の追跡にとって非常に重要です。 Linux システムは、アクセス時間 (atime)、変更時間 (mtime)、および変更時間 (ctime) という 3 つの主要な時間属性を通じてファイル変更情報を記録します。この記事では、このファイル時間情報を表示および管理する方法について詳しく説明し、具体的なコード例を示します。 1. パラメータ -l を指定して ls コマンドを使用してファイルを一覧表示し、ファイル時間情報を確認します。

携帯電話のフォーマット復元方法の秘密を公開(携帯電話の故障?心配しないでください) 携帯電話のフォーマット復元方法の秘密を公開(携帯電話の故障?心配しないでください) May 04, 2024 pm 06:01 PM

現在では、電源が入らない、システムクラッシュなどの遅延が発生することは避けられませんが、使用中に携帯電話は私たちの生活に欠かせないものとなっています。私たちはしばしば途方に暮れますが、時にはこれらの問題に対する解決策が見つからないこともあります。携帯電話の問題を解決するために、この記事では携帯電話のフォーマットを回復し、携帯電話を通常の動作に戻すいくつかの方法を紹介します。データをバックアップする - 携帯電話をフォーマットする前に、写真や連絡先などの重要な情報が失われないように、携帯電話上の重要なデータとファイルをバックアップすることを検討してください。データのセキュリティを確保するため、またはファイルをクラウド ストレージ サービスに転送することを選択するために、コンピューターに接続してファイルをバックアップできます。システム内蔵の回復機能を使用する - シンプル

See all articles