
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
@solid-primitives/date
Advanced tools
Collection of reactive primitives and utility functions, providing easier ways to deal with dates in SolidJS
Collection of reactive primitives and utility functions, providing easier ways to deal with dates in SolidJS.
createDate
- Creates a reactive Date
signal.createDateNow
- Creates an autoupdating and reactive new Date()
.createTimeDifference
- Provides a reactive time difference (in ms) signal.createTimeDifferenceFromNow
- Provides a autoupdating, reactive time difference (in ms) from now as a signal.createTimeAgo
- Provides a reactive, formatted, autoupdating date difference in relation to now.createCountdown
- Provides a reactive broken down time remaining Store.createCountdownFromNow
- Provides a reactive, autoupdating (from now), broken down "time remaining" as a Store.npm install @solid-primitives/date
# or
yarn add @solid-primitives/date
createDate
Creates a reactive Date
signal.
const [date, setDate] = createDate(1641408329089);
date(); // T: Date
setDate("2020 1 11");
// passed initial value can be reactive
const [timestamp, setTimestamp] = createSignal(1641408329089);
const [date, setDate] = createDate(timestamp);
setTimestamp(1341708325070); // will update the date
createDateNow
Creates an autoupdating and reactive new Date()
.
import { createDateNow } from "@solid-primitives/date";
// updates every second:
const [now] = createDateNow(1000);
// reactive timeout value
const [timeout, setTimeout] = createSignal(500);
const [now] = createDateNow(timeout);
// won't autoupdate:
const [now, update] = createDateNow(() => false);
// update manually:
update();
createTimeDifference
Provides a reactive time difference (in ms) signal.
// the arguments can be reactive
const [target, setTarget] = createSignal(1641408329089);
const [diff, { from, to }] = createTimeDifference("2020 1 11", target);
diff(); // T: number
from(); // T: Date
to(); // T: Date
createTimeDifferenceFromNow
Provides a autoupdating, reactive time difference (in ms) from now as a signal.
const [target, setTarget] = createSignal(1641408329089);
const [diff, { target, now, update }] = createTimeDifferenceFromNow(target);
diff(); // T: number
target(); // T: Date
now(); // T: Date
// manual update (automatic one can be disabled by passing false)
update();
// you can pass a custom interval (number or function or false)
createTimeDifferenceFromNow(target, diff => (diff > 100000 ? 30000 : 1000));
createTimeAgo
Provides a reactive, formatted date difference in relation to now.
import { createTimeAgo, createDate } from "@solid-primitives/date";
const [myDate, setMyDate] = createDate("Jun 28, 2021");
const [timeago, { target, now, update, difference }] = createTimeAgo(myDate);
// => 5 months ago
timeago(); // => 5 months ago
difference(); // T: number
target(); // T: Date
now(); // T: Date
// manual update (automatic one can be disabled by passing false)
update();
// use custom libraries to change formatting:
import { formatRelative } from "date-fns";
const [timeago] = createTimeAgo(1577836800000, {
min: 10000,
interval: 30000,
relativeFormatter: (target, now) => formatRelative(target, now),
});
// => last Monday at 9:25 AM
createCountdown
Provides a reactive broken down time remaining Store.
const [to, setTo] = createSignal(1641408329089);
const countdown = createCountdown("2020 1 11", to);
countdown.minutes; // e.g. 5
countdown.hours; // e.g. 1
countdown.seconds; // e.g. 48
createCountdownFromNow
Provides a reactive, autoupdating (from now), broken down "time remaining" as a Store.
// target date may be reactive
const [to, setTo] = createSignal(1641408329089);
const [countdown, { now, target, update }] = createCountdownFromNow(to);
countdown.minutes; // e.g. 5
countdown.hours; // e.g. 1
countdown.seconds; // e.g. 48
target(); // T: Date
now(); // T: Date
// manual update (automatic one can be disabled by passing false)
update();
// you can pass a custom interval (number or function or false)
createCountdownFromNow(to, diff => (diff > 100000 ? 30000 : 1000));
getDate
/**
* @param init timestamp `number` | date `string` | `Date` instance
* @returns `Date` instance
*/
const getDate = (init: DateInit): Date
getTime
/**
* @param init timestamp `number` | date `string` | `Date` instance
* @returns timestamp `number`
*/
const getTime = (init: DateInit): number
getDateDifference
Get the time difference between two dates [ms]
const getDateDifference = (from: Date, to: Date): number
getCountdown
Provides broken down time remaining from a time difference.
/**
* @param difference time difference between two dates *[ms]*
* @returns countdown object with keys: `days`, `hours`, `minutes`, etc.
*/
const getCountdown = (difference: number): Countdown
formatDate
Apply basic formatting to a Date
instance.
const formatDate = (date: Date): string
// example
const date = new Date("2020 1 11")
formatDate(date) // => '2020-01-10'
formatDateRelative
Applies relative time formatting based on a time difference from now.
/**
* @param difference time difference between a date and now *[ms]*
* @param messages custom messages for changing formatting
* @returns formatted string, e.g. *"2 seconds ago"*, *"in 3 weeks"*...
*/
function formatDateRelative(difference: number, messages?: Partial<RelativeFormatMessages>): string;
https://codesandbox.io/s/solid-date-hjxui?file=/index.tsx
See CHANGELOG.md
FAQs
Collection of reactive primitives and utility functions, providing easier ways to deal with dates in SolidJS
The npm package @solid-primitives/date receives a total of 2,966 weekly downloads. As such, @solid-primitives/date popularity was classified as popular.
We found that @solid-primitives/date demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.