cari
Rumahhujung hadapan webtutorial jsHancurkan Pemformatan Tarikh dan Masa Secara Asli: Lepaskan Kuasa Tersembunyi Intl.DateTimeFormat

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

Pengenalan kepada API Antarabangsa Asli

API Antarabangsa dalam JavaScript ialah penyelesaian yang berkuasa dan asli untuk mengendalikan penyetempatan dan pemformatan data seperti tarikh, nombor dan teks dalam pelbagai bahasa. Tidak seperti kebanyakan perpustakaan pihak ketiga, API ini menawarkan:

  • Prestasi tinggi: Disepadukan ke dalam enjin JavaScript.

  • Saiz berkas yang lebih kecil: Menghilangkan keperluan untuk kebergantungan luaran.

  • Sokongan global: Termasuk penyetempatan untuk pelbagai bahasa dan wilayah.

Tidak seperti perpustakaan luaran, API asli tidak memerlukan kemas kini atau penyelenggaraan oleh pembangun. Selain itu, ia dioptimumkan untuk enjin JavaScript asas, memberikan pendekatan yang lebih ringan dan lebih pantas untuk penyetempatan dan pemformatan.

Dalam artikel ini, kami akan menumpukan pada Intl.DateTimeFormat, API khusus untuk memformat tarikh dan masa berdasarkan penyetempatan yang dikehendaki. Kita akan melihat bagaimana API ini boleh menggantikan perpustakaan popular seperti Moment.js, date-fns atau Day.js untuk keperluan pemformatan, menawarkan alternatif moden dan asli.


Perihalan Intl.DateTimeFormat

Intl.DateTimeFormat ialah kelas yang membenarkan pemformatan setempat tarikh dan masa. Ia menyediakan ciri lanjutan seperti sokongan untuk penyetempatan yang berbeza, format yang boleh disesuaikan dan pengendalian kalendar alternatif dan zon waktu.


Mencipta Pemformat

Pemformat ialah contoh Intl.DateTimeFormat yang menyimpan konfigurasi khusus untuk pemformatan tarikh. Dengan menggunakan pemformat, anda boleh menggunakan format yang sama berulang kali pada tarikh yang berbeza, menjadikan kod anda lebih cekap dan boleh dibaca.

Untuk mencipta pemformat, gunakan pembina Intl.DateTimeFormat dengan parameter yang dikehendaki:

const formatter = new Intl.DateTimeFormat(locale, options);
  • locale: Rentetan yang mentakrifkan penyetempatan (cth., "en-US" untuk Bahasa Inggeris Amerika, "it-IT" untuk Itali).

  • pilihan: Objek pilihan untuk menentukan komponen tarikh (cth., hari bekerja, bulan, tahun, dll.).

Walaupun adalah perkara biasa untuk menyimpan contoh pemformat dalam pembolehubah untuk digunakan semula, langkah ini tidak diperlukan sepenuhnya. Pembina Intl.DateTimeFormat boleh digunakan terus untuk memformat tarikh sebaris, seperti yang ditunjukkan di bawah:

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

Walau bagaimanapun, mencipta contoh pemformat menjadi amat berguna apabila format yang sama perlu digunakan pada berbilang tarikh, meningkatkan ketekalan kod dan mengelakkan lebihan:

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

Contoh Asas: Bermula dengan Intl.DateTimeFormat

Terokai kesederhanaan dan kuasa Intl.DateTimeFormat dengan contoh asas ini. Kami akan menunjukkan cara membuat pemformat untuk format lalai dan tersuai yang boleh digunakan semula merentas aplikasi anda.

1. Pemformatan Lalai

Jika tiada pilihan disediakan, pemformat menggunakan format lalai tempat yang dipilih.

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

2. Pemformatan Tersuai

Sesuaikan output dengan menyatakan pilihan yang diingini.

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"

Contoh Lanjutan: Membuka Potensi Penuh Intl.DateTimeFormat

Ambil pemformatan tarikh dan masa anda ke peringkat seterusnya dengan senario lanjutan, seperti mengendalikan berbilang penyetempatan, kalendar alternatif dan zon waktu. Contoh ini mempamerkan kepelbagaian dan kebolehsuaian Intl.DateTimeFormat dalam aplikasi yang kompleks.

1. Mengendalikan Penyetempatan Berbeza

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

2. Memformat dengan Kalendar Alternatif

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. Mengendalikan Zon Masa

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 dan Intl.DateTimeFormat

Menggunakan Intl.DateTimeFormat dengan TypeScript memastikan keselamatan jenis dan pengalaman pembangunan yang lebih baik. Takrif TypeScript untuk Intl.DateTimeFormat terbina dalam, menyediakan autolengkap dan dokumentasi untuk kaedah dan sifatnya.

Ini contohnya:

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

Penaipan yang ketat membantu mengelakkan ralat masa jalan dengan menangkap isu yang berpotensi pada masa penyusunan, seperti pilihan yang salah atau panggilan kaedah.


Perbandingan dengan Perpustakaan Popular

Mengapa Pertimbangkan Intl.DateTimeFormat?

  • Ringan: Ia asli dan tidak memerlukan perpustakaan luaran, mengurangkan saiz berkas.

  • Prestasi: Selalunya lebih pantas daripada penyelesaian berdasarkan perpustakaan.

  • Penyetempatan Terbina dalam: Secara asli menyokong pelbagai bahasa dan kalendar.

Contoh: Pemformatan Mudah

Dengan 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"

Dengan tarikh-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"

Dengan Day.js

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

Dengan Intl.DateTimeFormat

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

Walaupun perpustakaan luaran mungkin menawarkan gula sintaksis, API asli menyediakan kefungsian yang setara tanpa mengorbankan fleksibiliti atau kecekapan. Sintaks API asli yang lebih panjang sedikit ialah pertukaran kecil untuk faedahnya dalam kebolehselenggaraan, prestasi dan kesederhanaan.


Kesimpulan

Intl.DateTimeFormat menyediakan penyelesaian asli yang mantap untuk pemformatan tarikh dan masa, menjadikannya alternatif terbaik kepada perpustakaan popular seperti Moment.js, date-fns dan Day.js. Dengan prestasi tinggi, penyetempatan terbina dalam dan penyelenggaraan yang dipermudahkan, ia merupakan alat yang berharga untuk aplikasi JavaScript moden.

Untuk menyelam lebih dalam ke Intl.DateTimeFormat dan meneroka ciri tambahan, lawati Dokumen Web MDN rasmi. Di sana, anda akan menemui dokumentasi komprehensif dan contoh praktikal untuk membantu anda menguasai API yang berkuasa ini.

Atas ialah kandungan terperinci Hancurkan Pemformatan Tarikh dan Masa Secara Asli: Lepaskan Kuasa Tersembunyi Intl.DateTimeFormat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
JavaScript in Action: Contoh dan projek dunia nyataJavaScript in Action: Contoh dan projek dunia nyataApr 19, 2025 am 12:13 AM

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.

JavaScript dan Web: Fungsi teras dan kes penggunaanJavaScript dan Web: Fungsi teras dan kes penggunaanApr 18, 2025 am 12:19 AM

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.

Memahami Enjin JavaScript: Butiran PelaksanaanMemahami Enjin JavaScript: Butiran PelaksanaanApr 17, 2025 am 12:05 AM

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

Python vs JavaScript: Keluk Pembelajaran dan Kemudahan PenggunaanPython vs JavaScript: Keluk Pembelajaran dan Kemudahan PenggunaanApr 16, 2025 am 12:12 AM

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Python vs JavaScript: Komuniti, Perpustakaan, dan SumberPython vs JavaScript: Komuniti, Perpustakaan, dan SumberApr 15, 2025 am 12:16 AM

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Dari C/C ke JavaScript: Bagaimana semuanya berfungsiDari C/C ke JavaScript: Bagaimana semuanya berfungsiApr 14, 2025 am 12:05 AM

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Enjin JavaScript: Membandingkan PelaksanaanEnjin JavaScript: Membandingkan PelaksanaanApr 13, 2025 am 12:05 AM

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Beyond the Browser: JavaScript di dunia nyataBeyond the Browser: JavaScript di dunia nyataApr 12, 2025 am 12:06 AM

Aplikasi JavaScript di dunia nyata termasuk pengaturcaraan sisi pelayan, pembangunan aplikasi mudah alih dan Internet of Things Control: 1. Pengaturcaraan sisi pelayan direalisasikan melalui node.js, sesuai untuk pemprosesan permintaan serentak yang tinggi. 2. Pembangunan aplikasi mudah alih dijalankan melalui reaktnatif dan menyokong penggunaan silang platform. 3. Digunakan untuk kawalan peranti IoT melalui Perpustakaan Johnny-Five, sesuai untuk interaksi perkakasan.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini