Date & Time #
TypeScript, sebagai superset dari JavaScript, menggunakan objek Date
bawaan JavaScript untuk bekerja dengan tanggal dan waktu. Meskipun TypeScript tidak menambahkan fitur tambahan ke objek Date
itu sendiri, TypeScript memungkinkan Anda untuk bekerja dengan tipe data yang lebih aman dan eksplisit terkait tanggal dan waktu. Berikut adalah berbagai macam implementasi datetime
pada TypeScript:
Membuat Objek Date
#
Anda dapat membuat objek Date
dengan berbagai cara:
let now: Date = new Date(); // Tanggal dan waktu saat ini
let specificDate: Date = new Date(2024, 7, 24); // 24 Agustus 2024
let specificDateTime: Date = new Date(2024, 7, 24, 10, 30, 0); // 24 Agustus 2024, 10:30:00
let fromTimestamp: Date = new Date(1659334800000); // Dari Unix Timestamp
let fromString: Date = new Date("2024-08-24T10:30:00"); // Dari string ISO 8601
- Penggunaan: Membuat objek
Date
untuk mewakili tanggal dan waktu tertentu.
Mendapatkan Informasi dari Objek Date
#
Anda dapat mengekstrak berbagai informasi dari objek Date
menggunakan metode bawaan:
let today: Date = new Date();
let year: number = today.getFullYear(); // Mendapatkan tahun
let month: number = today.getMonth(); // Mendapatkan bulan (0-11)
let date: number = today.getDate(); // Mendapatkan tanggal
let hours: number = today.getHours(); // Mendapatkan jam
let minutes: number = today.getMinutes(); // Mendapatkan menit
let seconds: number = today.getSeconds(); // Mendapatkan detik
let milliseconds: number = today.getMilliseconds(); // Mendapatkan milidetik
- Penggunaan: Mengambil bagian spesifik dari tanggal dan waktu, seperti tahun, bulan, atau jam.
Mengubah Informasi pada Objek Date
#
Anda juga bisa mengubah komponen-komponen tertentu dari objek Date
menggunakan metode yang disediakan:
let eventDate: Date = new Date(2024, 7, 24, 10, 30);
eventDate.setFullYear(2025); // Mengubah tahun menjadi 2025
eventDate.setMonth(11); // Mengubah bulan menjadi Desember
eventDate.setDate(25); // Mengubah tanggal menjadi 25
eventDate.setHours(12); // Mengubah jam menjadi 12
eventDate.setMinutes(45); // Mengubah menit menjadi 45
- Penggunaan: Memodifikasi nilai tanggal dan waktu pada objek
Date
yang sudah ada.
Format Tanggal dan Waktu #
TypeScript menggunakan metode toLocaleString()
, toLocaleDateString()
, dan toLocaleTimeString()
untuk memformat tanggal dan waktu sesuai dengan lokal tertentu:
let now: Date = new Date();
let localDateString: string = now.toLocaleDateString(); // Format tanggal lokal
let localTimeString: string = now.toLocaleTimeString(); // Format waktu lokal
let localDateTimeString: string = now.toLocaleString(); // Format tanggal dan waktu lokal
let customFormat: string = now.toLocaleString('id-ID', {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
});
- Penggunaan: Memformat tanggal dan waktu menjadi string yang dapat dibaca, sesuai dengan pengaturan lokal atau format kustom.
Menghitung Selisih antara Dua Tanggal #
Anda bisa menghitung selisih antara dua tanggal dalam milidetik dan kemudian mengonversinya ke unit waktu lain seperti hari atau jam:
let startDate: Date = new Date(2024, 7, 24);
let endDate: Date = new Date(2024, 7, 25);
let timeDiff: number = endDate.getTime() - startDate.getTime(); // Selisih dalam milidetik
let daysDiff: number = timeDiff / (1000 * 60 * 60 * 24); // Mengonversi milidetik menjadi hari
- Penggunaan: Menghitung durasi atau interval waktu antara dua tanggal.
Konversi Tanggal ke String dan Sebaliknya #
Mengonversi tanggal ke string atau sebaliknya adalah operasi umum, terutama saat bekerja dengan input pengguna atau data JSON:
let date: Date = new Date();
let dateString: string = date.toISOString(); // Konversi Date ke string dalam format ISO 8601
let parsedDate: Date = new Date(dateString); // Konversi string ISO 8601 kembali ke Date
- Penggunaan: Konversi antar format data tanggal untuk penyimpanan atau transmisi data.
Menggunakan Library Pihak Ketiga #
Meskipun objek Date
bawaan cukup kuat, sering kali pengembang menggunakan library pihak ketiga seperti moment.js
atau date-fns
untuk manipulasi tanggal dan waktu yang lebih kompleks.
Contoh penggunaan date-fns
:
import { format, addDays, differenceInDays } from 'date-fns';
let today: Date = new Date();
let tomorrow: Date = addDays(today, 1);
let formattedDate: string = format(today, 'yyyy-MM-dd');
let daysBetween: number = differenceInDays(tomorrow, today);
- Penggunaan: Untuk operasi tanggal dan waktu yang lebih kompleks, seperti penambahan tanggal, pengurangan, perbandingan, atau format yang lebih fleksibel.
Kesimpulan #
Dengan berbagai macam implementasi ini, TypeScript memungkinkan Anda untuk bekerja dengan tanggal dan waktu secara efisien dan terstruktur. Namun, jika Anda membutuhkan operasi yang lebih kompleks atau manajemen zona waktu, menggunakan library pihak ketiga mungkin menjadi pilihan yang lebih tepat.