国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ ウェブフロントエンド jsチュートリアル 日付と時(shí)刻の書式設(shè)定をネイティブにクラッシュする: Intl.DateTimeFormat の隠された力を解き放つ

日付と時(shí)刻の書式設(shè)定をネイティブにクラッシュする: Intl.DateTimeFormat の隠された力を解き放つ

Jan 10, 2025 pm 08:28 PM

Crush Date and Time Formatting Natively: Unleash the Hidden Power of Intl.DateTimeFormat

ネイティブ國(guó)際 API の概要

JavaScript の Intl API は、さまざまな言語(yǔ)の日付、數(shù)値、テキストなどのデータのローカリゼーションと書式設(shè)定を処理するための強(qiáng)力なネイティブ ソリューションです。多くのサードパーティ ライブラリとは異なり、これらの API は以下を提供します:

  • 高パフォーマンス: JavaScript エンジンに統(tǒng)合されています。

  • バンドル サイズの縮小: 外部依存関係の必要がなくなります。

  • グローバル サポート: 幅広い言語(yǔ)と地域のローカリゼーションが含まれます。

外部ライブラリとは異なり、ネイティブ API は開発者による更新やメンテナンスを必要としません。さらに、基盤となる JavaScript エンジン用に最適化されており、ローカリゼーションと書式設(shè)定に対する軽量かつ高速なアプローチを提供します。

この記事では、目的のローカライズに基づいて日付と時(shí)刻をフォーマットするための専用 API である Intl.DateTimeFormat に焦點(diǎn)を當(dāng)てます。この API が Moment.js、date-fns、Day.js などの一般的なライブラリを書式設(shè)定のニーズに置き換えて、最新のネイティブな代替手段を提供する方法を見ていきます。


Intl.DateTimeFormatの説明

Intl.DateTimeFormat は、日付と時(shí)刻のローカライズされた書式設(shè)定を可能にするクラスです。さまざまなローカリゼーションのサポート、カスタマイズ可能な形式、代替カレンダーやタイムゾーンの処理などの高度な機(jī)能を提供します。


フォーマッタの作成

フォーマッタは、日付書式設(shè)定の特定の構(gòu)成を保存する Intl.DateTimeFormat のインスタンスです。フォーマッタを使用すると、同じフォーマットを異なる日付に繰り返し適用できるため、コードがより効率的で読みやすくなります。

フォーマッタを作成するには、目的のパラメータを指定して Intl.DateTimeFormat コンストラクターを使用します。

const formatter = new Intl.DateTimeFormat(locale, options);
  • locale: ローカリゼーションを定義する文字列 (例: アメリカ英語(yǔ)の場(chǎng)合は「en-US」、イタリア語(yǔ)の場(chǎng)合は「it-IT」)。

  • options: 日付コンポーネント (平日、月、年など) を指定するためのオプションのオブジェクト。

再利用のためにフォーマッタ インスタンスを変數(shù)に保存するのが一般的ですが、この手順は厳密には必須ではありません。以下に示すように、Intl.DateTimeFormat コンストラクターを直接呼び出して、日付をインラインで書式設(shè)定することができます。

console.log(new Intl.DateTimeFormat('en-US', { year: 'numeric', month: 'long', day: 'numeric' }).format(new Date(2024, 11, 19)));
// Output: "December 19, 2024"

ただし、フォーマッタ インスタンスの作成は、同じフォーマットを複數(shù)の日付に適用する必要がある場(chǎng)合に特に便利で、コードの一貫性が向上し、冗長(zhǎng)性が回避されます。

const formatter = new Intl.DateTimeFormat(locale, options);

基本的な例: Intl.DateTimeFormat の概要

これらの基本的な例を使用して、Intl.DateTimeFormat のシンプルさと強(qiáng)力さを探ってください。アプリケーション全體で再利用できるデフォルトおよびカスタム形式のフォーマッタを作成する方法を示します。

1. デフォルトの書式設(shè)定

オプションが指定されない場(chǎng)合、フォーマッタは選択されたロケールのデフォルト形式を使用します。

console.log(new Intl.DateTimeFormat('en-US', { year: 'numeric', month: 'long', day: 'numeric' }).format(new Date(2024, 11, 19)));
// Output: "December 19, 2024"

2. カスタム書式設(shè)定

必要なオプションを指定して出力をカスタマイズします。

const formatter = new Intl.DateTimeFormat('en-US', {
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

console.log(formatter.format(new Date(2024, 11, 19))); // Output: "December 19, 2024"
console.log(formatter.format(new Date(2023, 5, 15))); // Output: "June 15, 2023"

高度な例: Intl.DateTimeFormat の可能性を最大限に引き出す

複數(shù)のローカリゼーション、代替カレンダー、タイムゾーンの処理などの高度なシナリオを使用して、日付と時(shí)刻の書式設(shè)定を次のレベルに引き上げます。これらの例は、複雑なアプリケーションにおける Intl.DateTimeFormat の多用途性と適応性を示しています。

1. さまざまなローカリゼーションの処理

const date = new Date(2024, 11, 19);
const formatter = new Intl.DateTimeFormat('en-US');
console.log(formatter.format(date)); // Output: "12/19/2024"

2. 代替カレンダーを使用した書式設(shè)定

const date = new Date(2024, 11, 19);
const formatter = new Intl.DateTimeFormat('en-US', {
  weekday: 'long',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});
console.log(formatter.format(date)); // Output: "Thursday, December 19, 2024"

3. タイムゾーンの取り扱い

const date = new Date(2024, 11, 19);
const italianFormatter = new Intl.DateTimeFormat('it-IT', {
  weekday: 'long',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});
console.log(italianFormatter.format(date)); // Output: "giovedì 19 dicembre 2024"

TypeScript と Intl.DateTimeFormat

TypeScript で Intl.DateTimeFormat を使用すると、型の安全性が確保され、開発エクスペリエンスが向上します。 Intl.DateTimeFormat の TypeScript 定義は組み込まれており、そのメソッドとプロパティのオートコンプリートとドキュメントを提供します。

これが例です:

const islamicFormatter = new Intl.DateTimeFormat('ar-SA-u-ca-islamic');
console.log(islamicFormatter.format(new Date(2024, 11, 19))); // Output: Date in the Islamic calendar

厳密な型付けは、不正なオプションやメソッド呼び出しなどの潛在的な問題をコンパイル時(shí)に検出することで、実行時(shí)エラーを回避するのに役立ちます。


人気のある図書館との比較

Intl.DateTimeFormat を検討する理由

  • 軽量: ネイティブで外部ライブラリを必要としないため、バンドル サイズが削減されます。

  • パフォーマンス: 多くの場(chǎng)合、ライブラリに基づくソリューションより高速です。

  • 組み込みローカリゼーション: さまざまな言語(yǔ)とカレンダーをネイティブでサポートします。

例: 単純な書式設(shè)定

Moment.js を使用

const date = new Date(Date.UTC(2024, 11, 19, 15, 30)); // Ensure the date is set in UTC

// Formatter for UTC
const utcFormatter = new Intl.DateTimeFormat('en-US', {
  timeZone: 'UTC',
  year: 'numeric',
  month: 'short',
  day: '2-digit',
  hour: '2-digit',
  minute: '2-digit',
  timeZoneName: 'short',
});
console.log(utcFormatter.format(date)); 
// Output: "Dec 19, 2024, 03:30 PM UTC"

// Formatter for Tokyo time zone
const tokyoFormatter = new Intl.DateTimeFormat('ja-JP', {
  timeZone: 'Asia/Tokyo',
  year: 'numeric',
  month: 'short',
  day: '2-digit',
  hour: '2-digit',
  minute: '2-digit',
  timeZoneName: 'short',
});
console.log(tokyoFormatter.format(date)); 
// Output: "2024/12/20 00:30 JST"

// Formatter for Berlin time zone
const berlinFormatter = new Intl.DateTimeFormat('de-DE', {
  timeZone: 'Europe/Berlin',
  year: 'numeric',
  month: 'short',
  day: '2-digit',
  hour: '2-digit',
  minute: '2-digit',
  timeZoneName: 'short',
});
console.log(berlinFormatter.format(date)); 
// Output: "19. Dez. 2024, 16:30 MEZ"

date-fns あり

const formatter: Intl.DateTimeFormat = new Intl.DateTimeFormat('en-US', {
  year: 'numeric',
  month: 'long',
  day: 'numeric'
});

const formattedDate: string = formatter.format(new Date(2024, 11, 19));
console.log(formattedDate); // Output: "December 19, 2024"

Day.js を使用

const moment = require('moment');
console.log(moment("2024-12-19").format('dddd, MMMM Do YYYY'));

Intl.DateTimeFormat を使用する

const { format } = require('date-fns');
console.log(format(new Date(2024, 11, 19), 'EEEE, MMMM do yyyy'));

外部ライブラリは糖衣構(gòu)文を提供する可能性がありますが、ネイティブ API は柔軟性や効率性を犠牲にすることなく同等の機(jī)能を提供します。ネイティブ API の構(gòu)文がわずかに長(zhǎng)いことは、保守性、パフォーマンス、シンプルさの利點(diǎn)と若干のトレードオフです。


結(jié)論

Intl.DateTimeFormat は、日付と時(shí)刻の書式設(shè)定のための堅(jiān)牢なネイティブ ソリューションを提供し、Moment.js、date-fns、Day.js などの一般的なライブラリの優(yōu)れた代替品となります。高いパフォーマンス、組み込みのローカリゼーション、簡(jiǎn)素化されたメンテナンスを備えたこのツールは、最新の JavaScript アプリケーションにとって貴重なツールです。

Intl.DateTimeFormat をさらに深く掘り下げて追加機(jī)能を探索するには、公式 MDN Web ドキュメントにアクセスしてください。そこでは、この強(qiáng)力な API を習(xí)得するのに役立つ包括的なドキュメントと実踐的な例が見つかります。

以上が日付と時(shí)刻の書式設(shè)定をネイティブにクラッシュする: Intl.DateTimeFormat の隠された力を解き放つの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

JSで日付と時(shí)間を操作する方法は? JSで日付と時(shí)間を操作する方法は? Jul 01, 2025 am 01:27 AM

JavaScriptで日付と時(shí)間を処理する場(chǎng)合は、次の點(diǎn)に注意する必要があります。1。日付オブジェクトを作成するには多くの方法があります。 ISO形式の文字列を使用して、互換性を確保することをお?jiǎng)幛幛筏蓼埂?2。時(shí)間情報(bào)を取得および設(shè)定して、メソッドを設(shè)定でき、月は0から始まることに注意してください。 3.手動(dòng)でのフォーマット日付には文字列が必要であり、サードパーティライブラリも使用できます。 4.ルクソンなどのタイムゾーンをサポートするライブラリを使用することをお?jiǎng)幛幛筏蓼?。これらの重要なポイントを?xí)得すると、一般的な間違いを効果的に回避できます。

なぜの下部にタグを配置する必要があるのですか? なぜの下部にタグを配置する必要があるのですか? Jul 02, 2025 am 01:22 AM

PLACSTHETTHETTHE BOTTOMOFABLOGPOSTORWEBPAGESERVESPAGESPORCICALPURPOSESESFORSEO、userexperience、andDesign.1.IthelpswithiobyAllowingseNStoAccessKeysword-relevanttagwithtagwithtagwithtagwithemaincontent.2.iTimrovesexperiencebyepingepintepepinedeeping

DOMでのイベントの泡立ちとキャプチャとは何ですか? DOMでのイベントの泡立ちとキャプチャとは何ですか? Jul 02, 2025 am 01:19 AM

イベントキャプチャとバブルは、DOMのイベント伝播の2つの段階です。キャプチャは最上層からターゲット要素までであり、バブルはターゲット要素から上層までです。 1.イベントキャプチャは、AddEventListenerのUseCaptureパラメーターをTrueに設(shè)定することにより実裝されます。 2。イベントバブルはデフォルトの動(dòng)作であり、UseCaptureはfalseに設(shè)定されているか、省略されます。 3。イベントの伝播を使用して、イベントの伝播を防ぐことができます。 4.イベントバブルは、動(dòng)的なコンテンツ処理効率を改善するためにイベント委任をサポートします。 5.キャプチャを使用して、ロギングやエラー処理など、事前にイベントを傍受できます。これらの2つのフェーズを理解することは、タイミングとJavaScriptがユーザー操作にどのように反応するかを正確に制御するのに役立ちます。

JavaScriptアプリケーションのペイロードサイズをどのように削減できますか? JavaScriptアプリケーションのペイロードサイズをどのように削減できますか? Jun 26, 2025 am 12:54 AM

JavaScriptアプリケーションがゆっくりとロードされ、パフォーマンスが低い場(chǎng)合、問題はペイロードが大きすぎることです。ソリューションには、次のものが含まれます。1。コード分割(コードスプリッティング)を使用し、React.lazy()またはビルドツールを介して大きなバンドルを複數(shù)の小さなファイルに分割し、最初のダウンロードを減らすために必要に応じてロードします。 2。未使用のコード(Treeshaking)を削除し、ES6モジュールメカニズムを使用して「デッドコード」をクリアして、導(dǎo)入されたライブラリがこの機(jī)能をサポートしていることを確認(rèn)します。 3.リソースファイルを圧縮してマージし、GZIP/BrotliとTerserがJSを圧縮できるようにし、ファイルを合理的にマージし、靜的リソースを最適化します。 4.頑丈な依存関係を交換し、day.jsやフェッチなどの軽量ライブラリを選択します

JavaScriptモジュールの決定的なJSラウンドアップ:ESモジュールvs CommonJS JavaScriptモジュールの決定的なJSラウンドアップ:ESモジュールvs CommonJS Jul 02, 2025 am 01:28 AM

ESモジュールとCommonJSの主な違いは、ロード方法と使用シナリオです。 1.CommonJSは同期的にロードされ、node.jsサーバー側(cè)環(huán)境に適しています。 2.ESモジュールは、ブラウザなどのネットワーク環(huán)境に適した非同期にロードされています。 3。Syntax、ESモジュールはインポート/エクスポートを使用し、トップレベルのスコープに配置する必要がありますが、CommonJSは実行時(shí)に動(dòng)的に呼ばれるrequire/Module.Exportsを使用します。 4.CommonJSは、Expressなどのnode.jsおよびLibrariesの古いバージョンで広く使用されていますが、ESモジュールは最新のフロントエンドフレームワークとnode.jsv14に適しています。 5.混合することはできますが、簡(jiǎn)単に問題を引き起こす可能性があります。

node.jsでHTTPリクエストを作成する方法は? node.jsでHTTPリクエストを作成する方法は? Jul 13, 2025 am 02:18 AM

node.jsでHTTPリクエストを開始するには、組み込みモジュール、axios、およびnode-fetchを使用する3つの一般的な方法があります。 1.依存関係のない內(nèi)蔵http/httpsモジュールを使用します。これは基本的なシナリオに適していますが、https.get()を使用してデータを取得したり、.write()を介してPOSTリクエストを送信するなど、データステッチとエラーモニタリングの手動(dòng)処理が必要です。 2.Axiosは、約束に基づいたサードパーティライブラリです。簡(jiǎn)潔な構(gòu)文と強(qiáng)力な機(jī)能を備えており、非同期/待ち聲、自動(dòng)JSON変換、インターセプターなどをサポートします。非同期リクエスト操作を簡(jiǎn)素化することをお?jiǎng)幛幛筏蓼埂?3.Node-Fetchは、約束と単純な構(gòu)文に基づいて、ブラウザフェッチに似たスタイルを提供します

Garbage CollectionはJavaScriptでどのように機(jī)能しますか? Garbage CollectionはJavaScriptでどのように機(jī)能しますか? Jul 04, 2025 am 12:42 AM

JavaScriptのごみ収集メカニズムは、タグクリアリングアルゴリズムを介してメモリを自動(dòng)的に管理して、メモリ漏れのリスクを減らします。エンジンはルートオブジェクトからアクティブオブジェクトを橫斷およびマークし、マークされていないオブジェクトはゴミとして扱われ、クリアされます。たとえば、オブジェクトが參照されなくなった場(chǎng)合(変數(shù)をnullに設(shè)定するなど)、次のリサイクルでリリースされます。メモリリークの一般的な原因には以下が含まれます。 closurures閉鎖の外部変數(shù)への參照。 globalグローバル変數(shù)は引き続き大量のデータを保持しています。 V8エンジンは、世代のリサイクル、増分マーキング、並列/同時(shí)リサイクルなどの戦略を通じてリサイクル効率を最適化し、メインスレッドのブロック時(shí)間を短縮します。開発中、不必要なグローバル?yún)⒄栅虮埭?、パフォーマンスと安定性を改善するためにオブジェクトの関連付けを迅速に裝飾する必要があります。

var vs let vs const:クイックJSラウンドアップ説明 var vs let vs const:クイックJSラウンドアップ説明 Jul 02, 2025 am 01:18 AM

var、let、constの違いは、範(fàn)囲、昇進(jìn)、繰り返し宣言です。 1.VARは機(jī)能範(fàn)囲であり、変動(dòng)的なプロモーションを備えており、繰り返しの宣言が可能になります。 2.一時(shí)的なデッドゾーンを備えたブロックレベルの範(fàn)囲であり、繰り返される宣言は許可されていません。 3.Constはブロックレベルの範(fàn)囲でもあり、すぐに割り當(dāng)てる必要があり、再割り當(dāng)てすることはできませんが、參照型の內(nèi)部値を変更できます。最初にconstを使用し、変數(shù)を変更するときにletを使用し、varの使用を避けます。

See all articles