Code Explainers
Code explainers tagged #formatting
typescript
export function formatDuration(ms: number): string { if (!Number.isFinite(ms) || ms < 0) { return "00:00"; }
Formatting milliseconds as a clock string
formatting
integer-math
guard-clause
Beginner
4 steps
javascript
class DownloadTracker { constructor(totalBytes, { windowMs = 3000 } = {}) { this.totalBytes = totalBytes; this.windowMs = windowMs;
Estimating download speed with a sliding window
sliding-window
getters
rate-calculation
Intermediate
7 steps
typescript
export interface FormatBytesOptions { decimals?: number; binary?: boolean; }
Formatting byte counts into human-readable sizes
formatting
logarithms
default-parameters
Intermediate
8 steps
php
<?php function timeAgo(DateTimeInterface $past, ?DateTimeInterface $now = null): string {
Building a timeAgo helper in PHP
datetime
formatting
pluralization
Beginner
6 steps
python
from datetime import datetime, timezone _INTERVALS = ( ("year", 60 * 60 * 24 * 365),
Building a human-friendly time_ago helper
datetime
timezones
formatting
Intermediate
5 steps
php
<?php namespace App\Services;
Building a valid iCalendar feed in PHP in Laravel
ical
serialization
formatting
Intermediate
8 steps
rust
pub fn format_size(bytes: u64) -> String { const UNITS: [&str; 7] = ["B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB"]; if bytes < 1024 {
Formatting byte counts as human-readable sizes
bit-manipulation
formatting
unit-conversion
Intermediate
5 steps
typescript
type CurrencyFormatOptions = { locale?: string; currency: string; showDecimals?: boolean;
Caching Intl.NumberFormat for currency
memoization
internationalization
caching
Intermediate
9 steps
javascript
const UNITS = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB']; export function formatBytes(bytes, { decimals = 1, binary = false } = {}) { if (!Number.isFinite(bytes)) {
Formatting byte counts into human units
logarithms
formatting
default-parameters
Intermediate
8 steps
rust
use std::fmt; #[derive(Clone, Copy, PartialEq, Eq)] pub struct Money {
Formatting money with Rust's Display trait
trait-implementation
integer-arithmetic
enums
Intermediate
10 steps
ruby
require "time" require "tzinfo" module TimeConverter
Converting timestamps across time zones with TZInfo
timezones
iso8601
parsing
Intermediate
8 steps
java
import java.time.Instant; import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter;
Converting timestamps across time zones in Java
date-time
time-zones
instant
Intermediate
6 steps
ruby
module DurationFormatter UNITS = [ ['week', 604_800], ['day', 86_400],
Turning seconds into human-readable durations in Ruby
greedy-decomposition
modular-arithmetic
formatting
Intermediate
7 steps
go
package geometry import "fmt"
Implementing fmt.Stringer in Go
interfaces
stringer
composition
Beginner
5 steps