Jadual Kandungan
Ketidakbolehubah
Rumah hujung hadapan web tutorial js Bekerja dengan Date dalam Javascript: new Date() vs Day.js vs Moment.js

Bekerja dengan Date dalam Javascript: new Date() vs Day.js vs Moment.js

Jul 23, 2024 pm 12:24 PM

Working with Date in Javascript: new Date() vs Day.js vs Moment.js

Lihat siaran asal https://devaradise.com/date-in-javascript-dayjs-momentjs/ untuk dibaca dengan Jadual Kandungan

Mengendalikan tarikh dan masa ialah tugas biasa dalam pembangunan JavaScript. Walaupun objek Tarikh asli JavaScript menawarkan pelbagai kaedah untuk berfungsi dengan tarikh, terdapat senario yang menggunakan perpustakaan luaran seperti Day.js atau Moment.js boleh memudahkan aliran kerja anda dan menyediakan penyelesaian yang lebih mantap.

Dalam artikel ini, kami akan meneroka kes biasa yang boleh diselesaikan oleh objek Tarikh asli JavaScript dan yang paling baik dikendalikan oleh perpustakaan luaran. Kami juga akan membandingkan Day.js dan Moment.js untuk membantu anda memilih alat yang sesuai untuk keperluan anda.

Kes Biasa Boleh Selesaikan mengikut Tarikh JS Asli

Objek Tarikh JavaScript asli menyediakan pelbagai kaedah untuk bekerja dengan tarikh dan masa. Berikut ialah beberapa kes penggunaan biasa apabila objek Tarikh asli adalah mencukupi:

1. Mencipta Tarikh

const now = new Date(); // Current date and time
const specificDate = new Date('2024-07-16'); // Specific date
Salin selepas log masuk

2. Mendapatkan Komponen Tarikh dan Masa

const now = new Date();
const year = now.getFullYear();
const month = now.getMonth() + 1; // Months are zero-indexed
const day = now.getDate();

const hours = now.getHours();
const minutes = now.getMinutes();
const seconds = now.getSeconds();
Salin selepas log masuk

3. Menetapkan Komponen Tarikh dan Masa

const now = new Date();

now.setFullYear(2025);
now.setMonth(11); // December
now.setDate(25);

now.setHours(10);
now.setMinutes(11);
now.setSeconds(12);
Salin selepas log masuk

4. Aritmetik Tarikh

const tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
Salin selepas log masuk

5. Memformat Tarikh

const now = new Date();
const dateString = now.toDateString(); // Example: 'Tue Jul 16 2024'
const timeString = now.toTimeString(); // Example: '14:12:34 GMT+0200 (Central European Summer Time)'
Salin selepas log masuk

6. Menghurai Tarikh

const parsedDate = new Date(Date.parse('2024-07-16T14:12:34Z'));
Salin selepas log masuk

7. Membandingkan Tarikh

const date1 = new Date('2024-07-16');
const date2 = new Date('2024-07-17');
const isSame = date1.getTime() === date2.getTime(); // false
const isBefore = date1.getTime() < date2.getTime(); // true
Salin selepas log masuk

8. Mendapatkan Hari dalam Minggu

const dayOfWeek = now.getDay(); // 0 for Sunday, 1 for Monday, etc.
Salin selepas log masuk

9. Menukar kepada UTC dan ISO String

const now = new Date();
const isoDate = now.toISOString(); // 2024-07-22T11:30:59.827Z
const utcDate = now.toUTCString(); // Mon, 22 Jul 2024 11:30:42 GMT
Salin selepas log masuk

Mengira Perbezaan Tarikh

const date1 = new Date('2024-01-01');
const date2 = new Date('2024-12-31');
const differenceInTime = date2 - date1;
const differenceInDays = differenceInTime / (1000 * 3600 * 24);
console.log(differenceInDays);
Salin selepas log masuk

Kes Diselesaikan Terbaik oleh Perpustakaan Luaran Seperti Day.js dan Moment.js

Walaupun objek Tarikh asli merangkumi manipulasi tarikh asas, tugas tertentu dikendalikan dengan lebih cekap oleh perpustakaan luaran seperti Day.js dan Moment.js. Berikut ialah beberapa senario di mana perpustakaan ini cemerlang:

1. Pemformatan Lanjutan

// Day.js
const Day.jsDate = Day.js().format('YYYY-MM-DD HH:mm:ss');

// Moment.js
const momentDate = moment().format('YYYY-MM-DD HH:mm:ss');
Salin selepas log masuk

2. Masa Relatif

// Day.js
Day.js.extend(relativeTime); // require RelativeTime plugin
Day.js('2024-01-01').from(Day.js('2023-01-01')); // a year ago

// Moment.js
moment('2024-01-01').from(moment('2023-01-01')); // a year ago
Salin selepas log masuk

3. Pengendalian Zon Masa

Day.js.extend(utc);
Day.js.extend(timezone);
Day.js('2024-07-16 14:12:34').tz('America/New_York');

// Moment.js with moment-timezone
moment.tz('2024-07-16 14:12:34', 'America/New_York');
Salin selepas log masuk

4. Pengantarabangsaan (i18n)

// Day.js
Day.js.locale('fr');
const frenchDate = Day.js().format('LLLL'); // dimanche 15 juillet 2012 11:01

// Moment.js
moment.locale('fr');
const frenchMomentDate = moment().format('LLLL'); // dimanche 15 juillet 2012 11:01
Salin selepas log masuk

5. Mengendalikan Tarikh Tidak Sah

// Day.js
const invalidDay.js = Day.js('invalid date');
if (!invalidDay.js.isValid()) {
    console.log('Invalid date');
}

// Moment.js
const invalidMoment = moment('invalid date');
if (!invalidMoment.isValid()) {
    console.log('Invalid date');
}
Salin selepas log masuk

6. Menghuraikan Format Tarikh Kompleks

// Day.js with customParseFormat plugin
Day.js.extend(customParseFormat);
const complexDate = Day.js('05/02/69 1:02:03 PM -05:00', 'MM/DD/YY H:mm:ss A Z');

// Moment.js
const complexMoment = moment('05/02/69 1:02:03 PM -05:00', 'MM/DD/YY H:mm:ss A Z');
Salin selepas log masuk

7. Bekerja dengan Tempoh

// Day.js
Day.js.extend(duration);
const durationDay.js = Day.js.duration(5000); // 5 seconds
console.log(durationDay.js.asMinutes()); // 0.083333...
const humanizedDurationDay.js = Day.js.duration(5000).humanize(); // 'a few seconds'

// Moment.js
const durationMoment = moment.duration(5000); // 5 seconds
console.log(durationMoment.asMinutes()); // 0.083333...
const humanizedDurationMoment = moment.duration(5000).humanize(); // 'a few seconds'
Salin selepas log masuk

Day.js vs Moment.js: Perbandingan Terperinci

Day.js dan Moment.js ialah dua perpustakaan popular untuk manipulasi tarikh dalam JavaScript. Walaupun kedua-duanya mempunyai tujuan yang sama, mereka mempunyai perbezaan yang berbeza dari segi prestasi, ciri dan kebolehgunaan. Perbandingan ini akan membantu anda memutuskan perpustakaan mana yang lebih sesuai untuk projek anda.

Day.js

Kebaikan

  • Ringan: Day.js hanya bersaiz 2KB, jauh lebih kecil daripada Moment.js, yang menjadikannya sesuai untuk aplikasi sensitif prestasi.
  • Kekal: Day.js menggalakkan kebolehubah, bermakna setiap operasi mengembalikan kejadian baharu, mengurangkan pepijat yang berkaitan dengan manipulasi tarikh.
  • Seni Bina Plugin: Day.js mempunyai sistem pemalam modular, membolehkan anda memasukkan hanya fungsi yang anda perlukan. Ini memastikan saiz berkas anda minimum.
  • Sintaks Moden: Day.js mengikuti sintaks JavaScript moden, menjadikannya lebih mudah untuk disepadukan dengan pangkalan kod moden.
  • Keserasian: Day.js direka bentuk untuk menjadi pengganti drop-in untuk Moment.js, dengan API yang serupa.

Keburukan

  • Kurang Ciri Terbina dalam: Day.js mempunyai lebih sedikit ciri terbina dalam berbanding Moment.js. Fungsi lanjutan memerlukan pemalam tambahan.
  • Sokongan Zon Waktu Terhad: Day.js bergantung pada pemalam pihak ketiga untuk sokongan zon waktu yang komprehensif, manakala Moment.js mempunyai Zon Waktu Momen.
  • Ekosistem Kurang Matang: Sebagai perpustakaan yang lebih baharu, Day.js mempunyai kurang penyepaduan dan sokongan komuniti berbanding Moment.js yang mantap.

Moment.js

Kebaikan

  • Kaya Ciri: Moment.js menyediakan set ciri yang komprehensif untuk hampir mana-mana tugas manipulasi tarikh dan masa.
  • Ekosistem Matang: Moment.js telah wujud sejak 2011, menghasilkan sokongan komuniti, pemalam dan penyepaduan yang meluas.
  • Pengendalian Zon Waktu: Moment.js, dengan pemalam Zon Waktu Moment, menawarkan sokongan zon waktu yang teguh, menjadikannya sesuai untuk aplikasi yang perlu mengendalikan berbilang zon waktu.
  • Dokumentasi Terperinci: Moment.js mempunyai dokumentasi yang terperinci dan diselenggara dengan baik, memudahkan pembangun mencari bantuan dan contoh.

Keburukan

  • Saiz Besar: Moment.js jauh lebih besar daripada Day.js, yang boleh memberi kesan kepada prestasi, terutamanya dalam aplikasi sebelah pelanggan.
  • Operasi Boleh Diubah: Operasi Moment.js memutasi objek tarikh asal, yang boleh membawa kepada gelagat yang tidak dijangka jika tidak diurus dengan teliti.
  • Ditamatkan: Pasukan Moment.js telah menghentikan penggunaan perpustakaan, mengesyorkan alternatif seperti Day.js untuk projek baharu.

Jadual Perbandingan

Ciri Day.js Moment.js
Feature Day.js Moment.js
Size ~2KB ~70KB
Immutability Yes No
Plugin Architecture Yes Limited
Feature Set Basic (extensible via plugins) Comprehensive
Timezone Support Limited (via plugins) Extensive (Moment Timezone)
Ecosystem Growing Mature
Documentation Good Extensive
Modern Syntax Yes No
API Compatibility Similar to Moment.js N/A
Status Actively maintained Deprecated
Saiz ~2KB ~70KB

Ketidakbolehubah

Ya Tidak

Seni Bina Plugin

Ya Terhad

Set Ciri

Asas (boleh dilanjutkan melalui pemalam) Komprehensif
    Sokongan Zon Waktu
Terhad (melalui pemalam) Meluas (Zon Waktu Detik)

Ekosistem

Berkembang Matang Dokumentasi Baik Meluas Sintaks Moden
  • Ya Tidak

    Keserasian API

    Serupa dengan Moment.js T/T Status Dikekalkan secara aktif Ditamatkan Kesimpulan

    Apabila bekerja dengan tarikh dalam JavaScript, adalah penting untuk memilih alat yang sesuai untuk tugas itu. Objek Tarikh JavaScript asli mencukupi untuk tugas manipulasi tarikh asas, tetapi untuk operasi yang lebih maju, perpustakaan seperti Day.js dan Moment.js menawarkan ciri yang hebat dan mudah.

    Apabila membuat keputusan antara Day.js dan Moment.js, pertimbangkan keperluan khusus projek anda.
  • Pilih Day.js jika anda memerlukan perpustakaan yang ringan, moden dan tidak boleh diubah dengan keupayaan modular. Ia sesuai untuk aplikasi dan projek sensitif prestasi yang tidak memerlukan pengendalian zon waktu yang meluas di luar kotak. Pilih Moment.js jika anda memerlukan perpustakaan yang kaya dengan ciri dengan sokongan zon waktu yang komprehensif dan ekosistem matang. Walau bagaimanapun, perlu diingat bahawa Moment.js telah ditamatkan dan untuk projek baharu, adalah disyorkan untuk mempertimbangkan alternatif seperti Day.js. Akhirnya, kedua-dua perpustakaan mempunyai kekuatan mereka dan sesuai untuk pelbagai jenis projek. Nilaikan keperluan projek anda dengan teliti untuk membuat keputusan termaklum. Cuba integrasikan alatan ini ke dalam projek anda yang seterusnya dan rasai kemudahan pengendalian tarikh dalam JavaScript. Selamat pengekodan!

    Atas ialah kandungan terperinci Bekerja dengan Date dalam Javascript: new Date() vs Day.js vs Moment.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan Laman Web ini
    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

    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

    Video Face Swap

    Video Face Swap

    Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

    Artikel Panas

    <🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
    4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
    Nordhold: Sistem Fusion, dijelaskan
    4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
    Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
    3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

    Alat panas

    Notepad++7.3.1

    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    SublimeText3 versi Cina

    SublimeText3 versi Cina

    Versi Cina, sangat mudah digunakan

    Hantar Studio 13.0.1

    Hantar Studio 13.0.1

    Persekitaran pembangunan bersepadu PHP yang berkuasa

    Dreamweaver CS6

    Dreamweaver CS6

    Alat pembangunan web visual

    SublimeText3 versi Mac

    SublimeText3 versi Mac

    Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

    Topik panas

    Tutorial Java
    1672
    14
    Tutorial PHP
    1277
    29
    Tutorial C#
    1257
    24
    Python vs JavaScript: Keluk Pembelajaran dan Kemudahan Penggunaan Python vs JavaScript: Keluk Pembelajaran dan Kemudahan Penggunaan Apr 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.

    JavaScript dan Web: Fungsi teras dan kes penggunaan JavaScript dan Web: Fungsi teras dan kes penggunaan Apr 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.

    JavaScript in Action: Contoh dan projek dunia nyata JavaScript in Action: Contoh dan projek dunia nyata Apr 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.

    Memahami Enjin JavaScript: Butiran Pelaksanaan Memahami Enjin JavaScript: Butiran Pelaksanaan Apr 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: Komuniti, Perpustakaan, dan Sumber Python vs JavaScript: Komuniti, Perpustakaan, dan Sumber Apr 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.

    Python vs JavaScript: Persekitaran dan Alat Pembangunan Python vs JavaScript: Persekitaran dan Alat Pembangunan Apr 26, 2025 am 12:09 AM

    Kedua -dua pilihan Python dan JavaScript dalam persekitaran pembangunan adalah penting. 1) Persekitaran pembangunan Python termasuk Pycharm, Jupyternotebook dan Anaconda, yang sesuai untuk sains data dan prototaip cepat. 2) Persekitaran pembangunan JavaScript termasuk node.js, vscode dan webpack, yang sesuai untuk pembangunan front-end dan back-end. Memilih alat yang betul mengikut keperluan projek dapat meningkatkan kecekapan pembangunan dan kadar kejayaan projek.

    Peranan C/C dalam JavaScript Jurubah dan Penyusun Peranan C/C dalam JavaScript Jurubah dan Penyusun Apr 20, 2025 am 12:01 AM

    C dan C memainkan peranan penting dalam enjin JavaScript, terutamanya digunakan untuk melaksanakan jurubahasa dan penyusun JIT. 1) C digunakan untuk menghuraikan kod sumber JavaScript dan menghasilkan pokok sintaks abstrak. 2) C bertanggungjawab untuk menjana dan melaksanakan bytecode. 3) C melaksanakan pengkompil JIT, mengoptimumkan dan menyusun kod hot-spot semasa runtime, dan dengan ketara meningkatkan kecekapan pelaksanaan JavaScript.

    Dari laman web ke aplikasi: Aplikasi pelbagai JavaScript Dari laman web ke aplikasi: Aplikasi pelbagai JavaScript Apr 22, 2025 am 12:02 AM

    JavaScript digunakan secara meluas di laman web, aplikasi mudah alih, aplikasi desktop dan pengaturcaraan sisi pelayan. 1) Dalam pembangunan laman web, JavaScript mengendalikan DOM bersama -sama dengan HTML dan CSS untuk mencapai kesan dinamik dan menyokong rangka kerja seperti JQuery dan React. 2) Melalui reaktnatif dan ionik, JavaScript digunakan untuk membangunkan aplikasi mudah alih rentas platform. 3) Rangka kerja elektron membolehkan JavaScript membina aplikasi desktop. 4) Node.js membolehkan JavaScript berjalan di sisi pelayan dan menyokong permintaan serentak yang tinggi.

    See all articles