@pyyupsk/fdu

API ReferenceConversion

valueOf()

Master the valueOf() method to get Unix timestamps in milliseconds since epoch (January 1, 1970). Learn numeric date comparison, performance measurement, timestamp storage, cache key generation, random date generation, date sorting, and implicit type conversion with practical examples.

Gets the Unix timestamp in milliseconds (milliseconds since January 1, 1970 00:00:00 UTC).

Syntax

.valueOf(): number

Returns

number - Milliseconds since Unix epoch

Examples

Basic Usage

import { fdu } from '@pyyupsk/fdu';

const date = fdu('2024-01-15T00:00:00Z');
date.valueOf();  // 1705276800000

const now = fdu();
console.log(now.valueOf());  // Current timestamp

Timestamp for Specific Dates

const date1 = fdu('2024-01-01T00:00:00Z');
date1.valueOf();  // 1704067200000

const date2 = fdu('2024-12-31T23:59:59Z');
date2.valueOf();  // 1735689599000

Common Patterns

Numeric Comparison

const date1 = fdu('2024-01-15');
const date2 = fdu('2024-01-20');

if (date1.valueOf() < date2.valueOf()) {
  console.log('date1 is earlier');
}

// Or use isBefore() method (recommended)
if (date1.isBefore(date2)) {
  console.log('date1 is earlier');
}

Calculate Difference

const date1 = fdu('2024-01-15');
const date2 = fdu('2024-01-20');

const diffMs = date2.valueOf() - date1.valueOf();
const diffDays = diffMs / (24 * 60 * 60 * 1000);

console.log(`Difference: ${diffDays} days`);
// Or use diff() method (recommended)
console.log(`Difference: ${date2.diff(date1, 'day')} days`);

Store as Number

const date = fdu('2024-01-15T14:30:00');

// Store timestamp in database
db.insert({
  timestamp: date.valueOf()
});

// Retrieve and recreate
const row = db.select();
const retrieved = fdu(row.timestamp);

Performance Measurement

const start = fdu();

// Do some work...
performTask();

const end = fdu();
const elapsed = end.valueOf() - start.valueOf();

console.log(`Task took ${elapsed}ms`);

Cache Key Generation

const date = fdu();

const cacheKey = `data_${date.valueOf()}`;
cache.set(cacheKey, data);

Random Date Generation

function randomDate(start: FduInstance, end: FduInstance): FduInstance {
  const startMs = start.valueOf();
  const endMs = end.valueOf();
  const randomMs = startMs + Math.random() * (endMs - startMs);

  return fdu(randomMs);
}

const start = fdu('2024-01-01');
const end = fdu('2024-12-31');
const random = randomDate(start, end);

Implicit Conversion

.valueOf() is called automatically in numeric contexts:

const date1 = fdu('2024-01-15');
const date2 = fdu('2024-01-20');

// These work without explicitly calling valueOf()
console.log(date1 < date2);           // true
console.log(date2 - date1);           // difference in ms
console.log(+date1);                  // valueOf() result
console.log(Number(date1));           // valueOf() result

Sorting

const dates = [
  fdu('2024-03-15'),
  fdu('2024-01-20'),
  fdu('2024-02-10')
];

// Sort by timestamp
dates.sort((a, b) => a.valueOf() - b.valueOf());
// Or: dates.sort((a, b) => +a - +b);

See Also