Day.js npm (jak to działa dla programistów)
Obsługa dat i godzin w JavaScript od dawna stanowi wyzwanie ze względu na ograniczenia i specyfikę wbudowanego obiektu Date. Chociaż natywny obiekt Date zapewnia podstawową funkcjonalność, często nie spełnia oczekiwań pod względem użyteczności, co skłania programistów do poszukiwania bardziej niezawodnych rozwiązań. Jednym z takich rozwiązań jest Day.js, minimalistyczna biblioteka JavaScript służąca do analizowania, sprawdzania poprawności, manipulowania oraz wyświetlania dat i godzin.
W tym artykule omówiono funkcje, zalety i zastosowanie Day.js, pokazując, dlaczego stało się ono popularnym wyborem wśród programistów.
Czym jest Day.js?
Day.js to lekka biblioteka JavaScript, która zapewnia proste API do pracy z datami i godzinami w celu prawidłowego wyświetlania daty i godziny w nowoczesnych przeglądarkach. Została zaprojektowana jako alternatywa dla podobnie nowoczesnego API Moment.js, szeroko stosowanej, ale znacznie cięższej biblioteki. Day.js zajmuje zaledwie 2 kB (po kompresji gzip), co czyni go doskonałym wyborem dla aplikacji, w których liczy się wydajność. Pomimo niewielkich rozmiarów biblioteka Day.js stanowi alternatywę dla Moment.js i oferuje zaawansowane funkcje, które obejmują najczęstsze przypadki użycia.

Najważniejsze cechy
Oto kilka kluczowych funkcji biblioteki Day.js:
- Lekkość: Dzięki niewielkim rozmiarom i zaawansowanym opcjom formatowania Day.js zapewnia, że Twoja aplikacja pozostaje szybka i wydajna.
- Niezmienność: Obiekty Day.js są niezmienne, co oznacza, że metody nie modyfikują oryginalnego obiektu, lecz zwracają nowe instancje.
- Łączalne API: Metody w Day.js można łączyć ze sobą, dzięki czemu kod staje się bardziej czytelny i zwięzły.
- Internacjonalizacja: Day.js obsługuje wiele ustawień regionalnych, co pozwala na łatwą lokalizację dat i godzin.
- System wtyczek: Modułowy system wtyczek pozwala rozszerzać funkcjonalność Day.js bez nadmiernego rozbudowywania biblioteki podstawowej.
- Kompatybilność: Day.js został zaprojektowany tak, aby był kompatybilny z Moment.js pod względem API, co ułatwia migrację istniejących kodów źródłowych.
Instalacja
Day.js można łatwo zainstalować za pomocą npm lub yarn. Można go również umieścić bezpośrednio w pliku HTML za pomocą CDN.
Korzystanie z npm
npm install dayjsnpm install dayjsPodstawowe zastosowanie
Day.js oferuje szerokie wsparcie dla stref czasowych, umożliwiając programistom łatwe zarządzanie czasem lokalnym i precyzyjne wykonywanie zadań związanych z manipulacją czasem. Dzięki swoim zaawansowanym możliwościom analizy składniowej Day.js zapewnia dokładną interpretację wartości daty i czasu, co pozwala uzyskać wiarygodne i spójne wyniki. Niezależnie od tego, czy chodzi o odejmowanie czasu, czy aktualizowanie wartości, Day.js ułatwia pracę z datami i godzinami, zapewniając dodatkowe funkcje, takie jak tworzenie nowych instancji w celu zwiększenia elastyczności.
Przyjrzyjmy się kilku przykładom pracy z Day.js.
1. Tworzenie dat
Utworzenie nowej instancji daty w Day.js jest proste. Poniższy przykład ilustruje to:
const dayjs = require('dayjs');
// Current date and time
const now = dayjs();
// Specific date and time
const specificDate = dayjs('2023-05-25');const dayjs = require('dayjs');
// Current date and time
const now = dayjs();
// Specific date and time
const specificDate = dayjs('2023-05-25');2. Formatowanie dat
Day.js zapewnia elastyczny i wydajny sposób formatowania dat:
const date = dayjs('2023-05-25');
// Format date as "YYYY-MM-DD"
console.log(date.format('YYYY-MM-DD')); // 2023-05-25
// Format date as "dddd, MMMM D, YYYY"
console.log(date.format('dddd, MMMM D, YYYY')); // Thursday, May 25, 2023const date = dayjs('2023-05-25');
// Format date as "YYYY-MM-DD"
console.log(date.format('YYYY-MM-DD')); // 2023-05-25
// Format date as "dddd, MMMM D, YYYY"
console.log(date.format('dddd, MMMM D, YYYY')); // Thursday, May 25, 20233. Analiza dat
Day.js może analizować obiekty daty z ciągów znaków i wyświetlać daty w różnych formatach:
const date1 = dayjs('2023-05-25');
const date2 = dayjs('05/25/2023', 'MM/DD/YYYY');
// Check if the dates are the same
console.log(date1.isSame(date2)); // trueconst date1 = dayjs('2023-05-25');
const date2 = dayjs('05/25/2023', 'MM/DD/YYYY');
// Check if the dates are the same
console.log(date1.isSame(date2)); // true4. Manipulowanie datami
Day.js umożliwia łatwą manipulację datami dzięki łańcuchowemu interfejsowi API:
const date = dayjs('2023-05-25');
// Add one week to the date
const nextWeek = date.add(1, 'week');
// Subtract one month from the date
const lastMonth = date.subtract(1, 'month');
console.log(nextWeek.format('YYYY-MM-DD')); // 2023-06-01
console.log(lastMonth.format('YYYY-MM-DD')); // 2023-04-25const date = dayjs('2023-05-25');
// Add one week to the date
const nextWeek = date.add(1, 'week');
// Subtract one month from the date
const lastMonth = date.subtract(1, 'month');
console.log(nextWeek.format('YYYY-MM-DD')); // 2023-06-01
console.log(lastMonth.format('YYYY-MM-DD')); // 2023-04-255. Porównanie dat
Porównywanie dat w Day.js jest proste i intuicyjne:
const date1 = dayjs('2023-05-25');
const date2 = dayjs('2023-06-01');
// Check if date1 is before date2
console.log(date1.isBefore(date2)); // true
// Check if date1 is after date2
console.log(date1.isAfter(date2)); // false
// Check if date1 is the same as date2
console.log(date1.isSame(date2)); // falseconst date1 = dayjs('2023-05-25');
const date2 = dayjs('2023-06-01');
// Check if date1 is before date2
console.log(date1.isBefore(date2)); // true
// Check if date1 is after date2
console.log(date1.isAfter(date2)); // false
// Check if date1 is the same as date2
console.log(date1.isSame(date2)); // false6. Lokalizacja
Day.js obsługuje internacjonalizację (i18n) w celu pracy z różnymi ustawieniami regionalnymi:
const dayjs = require('dayjs');
const localizedFormat = require('dayjs/plugin/localizedFormat');
const localeData = require('dayjs/plugin/localeData');
const updateLocale = require('dayjs/plugin/updateLocale');
// Extend Day.js with plugins
dayjs.extend(localizedFormat);
dayjs.extend(localeData);
dayjs.extend(updateLocale);
// Set locale to French
dayjs.locale('fr');
// Display date in localized format
console.log(dayjs().format('dddd, MMMM D, YYYY')); // jeudi, mai 25, 2023
// Customize locale
dayjs.updateLocale('fr', {
months: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
weekdays: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']
});
// Display date in customized localized format
console.log(dayjs().format('dddd, MMMM D, YYYY')); // jeudi, mai 25, 2023const dayjs = require('dayjs');
const localizedFormat = require('dayjs/plugin/localizedFormat');
const localeData = require('dayjs/plugin/localeData');
const updateLocale = require('dayjs/plugin/updateLocale');
// Extend Day.js with plugins
dayjs.extend(localizedFormat);
dayjs.extend(localeData);
dayjs.extend(updateLocale);
// Set locale to French
dayjs.locale('fr');
// Display date in localized format
console.log(dayjs().format('dddd, MMMM D, YYYY')); // jeudi, mai 25, 2023
// Customize locale
dayjs.updateLocale('fr', {
months: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
weekdays: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']
});
// Display date in customized localized format
console.log(dayjs().format('dddd, MMMM D, YYYY')); // jeudi, mai 25, 2023Używanie Day.js z IronPDF do dodawania dat do plików PDF w Node.js
Połączenie możliwości Day.js, lekkiego pakietu biblioteki JavaScript do obsługi dat, z IronPDF, wszechstronną biblioteką do generowania i edycji plików PDF dla Node.js, pozwala programistom na wydajną obsługę dat w dokumentach PDF.
IronPDF – biblioteka PDF dla Node.js
IronPDF for Node.js to kompleksowa biblioteka, która umożliwia programistom płynne tworzenie, edycję i interakcję z dokumentami PDF w ramach ich aplikacji Node.js. Dzięki bogatemu zestawowi funkcji IronPDF upraszcza takie zadania, jak generowanie plików PDF z HTML, adresów URL stron internetowych lub istniejących dokumentów, dodawanie tekstu, obrazów i elementów interaktywnych, a także precyzyjne konwertowanie HTML na PDF.

Aby uzyskać bardziej szczegółowe informacje na temat IronPDF for Node.js, odwiedź tę stronę dokumentacji.
Pierwsze kroki
Najpierw upewnij się, że masz zainstalowane niezbędne pakiety. Day.js i IronPDF można zainstalować za pomocą npm:
npm i @ironsoftware/ironpdf
Dodawanie podpisów cyfrowych z datami
IronPDF obsługuje również dodawanie podpisów cyfrowych do plików PDF. Oto jak dodać podpis z sygnaturą czasową przy użyciu Day.js.
import dayjs from 'dayjs';
import { PdfDocument } from "@ironsoftware/ironpdf";
(async () => {
// Import a PDF
const pdf = await PdfDocument.open("sample.pdf");
// Get the current date and time for the signature
const signatureDate = dayjs().toDate();
// Sign the PDF with a digital certificate
await pdf.signDigitalSignature({
certificatePath: "IronSoftware.pfx",
certificatePassword: "123456",
signingReason: "To show how to sign a PDF",
signingLocation: "Chicago, USA",
signatureDate: signatureDate,
signatureImage: {
SignatureImagePath: "logo.png"
}
});
// Save the signed PDF
await pdf.saveAs("signed_with_date.pdf");
})();import dayjs from 'dayjs';
import { PdfDocument } from "@ironsoftware/ironpdf";
(async () => {
// Import a PDF
const pdf = await PdfDocument.open("sample.pdf");
// Get the current date and time for the signature
const signatureDate = dayjs().toDate();
// Sign the PDF with a digital certificate
await pdf.signDigitalSignature({
certificatePath: "IronSoftware.pfx",
certificatePassword: "123456",
signingReason: "To show how to sign a PDF",
signingLocation: "Chicago, USA",
signatureDate: signatureDate,
signatureImage: {
SignatureImagePath: "logo.png"
}
});
// Save the signed PDF
await pdf.saveAs("signed_with_date.pdf");
})();Oto wynik:

Możesz również skorzystać z gotowych przykładów kodu, aby od razu rozpocząć pracę z biblioteką w swojej aplikacji Node.js. Aby uzyskać więcej informacji, można również odwiedzić tę stronę z Dokumentacją API.
Wnioski
Day.js to potężna i wydajna biblioteka do zarządzania datami i czasem w JavaScript. Jego lekkość, obsługa niezmiennych struktur danych oraz kompatybilność z Moment.js sprawiają, że jest to atrakcyjny wybór dla programistów, którzy chcą obsługiwać operacje związane z datą i czasem bez znacznego obciążania swoich aplikacji.
Dzięki integracji Day.js z IronPDF programiści mogą z łatwością obsługiwać daty w swoich dokumentach PDF. Niezależnie od tego, czy chodzi o generowanie plików PDF z adresów URL lub ciągów HTML, czy też dodawanie podpisów cyfrowych z sygnaturami czasowymi, Day.js zapewnia prosty i wydajny sposób zarządzania datami. To połączenie zwiększa funkcjonalność aplikacji Node.js, umożliwiając solidne i dynamiczne zarządzanie dokumentami PDF.
Poznaj możliwości IronPDF już od $799. Przekonaj się sam, jak potężne mogą być funkcje generowania i edycji plików PDF. Wypróbuj już dziś!








