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(): numberReturns
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 timestampTimestamp for Specific Dates
const date1 = fdu('2024-01-01T00:00:00Z');
date1.valueOf(); // 1704067200000
const date2 = fdu('2024-12-31T23:59:59Z');
date2.valueOf(); // 1735689599000Common 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() resultSorting
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
- toISOString() - Convert to ISO string
- toDate() - Convert to native Date
- diff() - Calculate difference between dates
toISOString()
Learn how to convert dates to ISO 8601 string format using toISOString(). Perfect for database storage, REST API communication, JSON serialization, application logging, file naming, and standardized date interchange with comprehensive examples following YYYY-MM-DDTHH:mm:ss.sssZ format.
isValid()
Comprehensive guide to validating dates using the isValid() method. Learn how to check date validity, handle invalid user input, implement form validation, filter valid dates, validate API responses, and apply defensive programming patterns for robust date handling in production applications.