SShortSingh.
Back to feed

Unix Timestamp Bug Explained: Why Mixing Seconds and Milliseconds Breaks Dates

0
·1 views

A common programming bug causes dates to display incorrectly — either as January 1970 or the year 55,840 — when Unix timestamps in seconds are confused with milliseconds, or vice versa. JavaScript's Date object expects milliseconds, so passing a seconds-based timestamp without multiplying by 1,000 results in a date just 19 days past the Unix epoch. Conversely, multiplying a milliseconds timestamp by 1,000 again pushes the date tens of thousands of years into the future. A practical rule of thumb is to count digits: a 10-digit value is likely in seconds, while a 13-digit value is likely in milliseconds. Developers are advised to confirm the unit from API documentation and convert explicitly rather than relying on digit-counting heuristics in production code.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

AWS offers secure EC2 management without opening SSH port

AWS Systems Manager Session Manager provides an alternative to SSH for managing Linux EC2 instances. It allows administrators to establish interactive sessions without exposing the inbound SSH port 22. The method relies on an agent installed on the instance and administrator IAM permissions. All session requests are handled through AWS services, removing the need for a direct network path to the instance. This approach enhances security by eliminating the requirement for an open inbound port on the instance's security group.

0
ProgrammingDEV Community ·

Node.js Express Service Adds Early Image Size Limits to Block Oversized Uploads

A technical guide recommends implementing early size checks for image uploads in Node.js Express applications. The method involves reading image metadata before full processing to compare dimensions against set limits. This prevents expensive decoding of oversized files, such as identity documents in fintech services. The approach uses two separate limits: one for file size during transfer and another for pixel dimensions during processing. Early rejection reduces server load and provides clear feedback when uploads exceed configured thresholds.

0
ProgrammingDEV Community ·

Developer creates interactive Netflix catalog explorer using Python and open data

A developer built an interactive data visualization application to explore Netflix's catalog using a public dataset. The tool was created with Python, pandas, Plotly, and Streamlit, analyzing 8,807 titles including movies and TV shows. It features summary indicators, charts by release year and content type, and breakdowns by country and genre. The project demonstrates connecting exploratory data analysis with reproducible deployment while acknowledging the dataset represents a historical snapshot.

0
ProgrammingDEV Community ·

Laravel Horizon's built-in alerting limited, additional monitoring tools required

Laravel Horizon's only native alert is 'LongWaitDetected', which triggers when a queue's estimated wait time exceeds a configurable threshold. This alert repeats every five minutes during the condition but never sends a recovery notification, and it fails if Horizon itself is down. Gauges from packages like spatie/laravel-prometheus can monitor if Horizon is running or paused, while counters are needed to track failure rates and job latency for actionable alerts. Some issues, like expired job reservations, do not generate any metrics and require direct checks of the queue state.

Unix Timestamp Bug Explained: Why Mixing Seconds and Milliseconds Breaks Dates · ShortSingh