Add the date to your photos

The orange stamp of old compact cameras, bottom right, but with the real date of the shot: the one the camera wrote inside the photo, not the file date, which changes with every copy. Portrait photos come out upright and your phone gallery still files them under their own day.

Tap here or drop the photos (JPG, HEIC, PNG, WebP)
The photos never leave your device: they are read, drawn and saved here, in the browser. No upload, no copy on a server.

The real date is inside the photo, not in the file

Every photo carries two dates, and people nearly always look at the wrong one. The file date is the one you see in your computer folder: it changes when you copy the photo to a USB stick, when you download it from the cloud, when you send it on WhatsApp. Whoever recovers the photos from an old phone ends up with three hundred shots from five years, all dated the same afternoon: the afternoon of the copy.

The date of the shot, instead, is written by the camera the moment you press the button, inside the photo itself, in a block of hidden data called EXIF (the field is DateTimeOriginal). It does not change with copies, because it travels inside the image. It is the only one this page uses: the file date is never a fallback, because stamping it would mean confidently printing a wrong date.

To see all the hidden data of a photo there is Photo EXIF viewer.

Why the portrait photo is lying down, and where others go wrong

A phone sensor is always landscape. When you hold the phone upright, the photo is saved lying on its side, and a number is added to the EXIF, the orientation, which tells whoever opens it how to turn it: 6 means «turn it a quarter clockwise», 8 anticlockwise, 3 «turn it upside down».

Here people trip in two ways. Whoever writes the date before straightening the photo puts it on the short side, in the wrong corner. And browsers straighten photos by themselves when they open them, but not all in the same way, so whoever turns it again prints it upside down. This page does not guess: it hands the browser a copy with the orientation rewritten to «upright», receives the pixels as they are stored and makes the turn once, itself.

The test of this page uses photos saved sideways with orientations 3, 5, 6 and 8, and requires them to come out upright, not mirrored, at the right size.

The hidden data: what goes back in and what does not

A photo redrawn by the browser comes out with no hidden data at all, and then your phone gallery files it under today, far from the photos of that day. This is why here the original EXIF is put back inside the file that comes out, with the date of the shot unchanged. Two things are changed on purpose: the orientation becomes «upright», because if it stayed 6 the gallery would turn a photo that is already turned, and the size is updated to the new one.

The internal thumbnail, a tiny photo that the EXIF carries for quick previews, is removed: it would show the photo from before, undated and sideways.

The GPS location is not kept by default: the coordinates tell anyone who receives the photo where you live. And unhooking it from the list of data is not enough, because its numbers would stay written in the file: here they are wiped. The other two choices keep it, or keep no data at all. And if all you need is to clean a photo without writing on it, there is Remove metadata.

Photos without a date: screenshots, WhatsApp, a clock never set

Not every photo has the date of the shot. Screenshots have none because no camera took them, photos sent through WhatsApp lose it because the app compresses them again and throws the EXIF away, and some cheap cameras write an empty date, 0000:00:00, because nobody ever set their clock.

Here these photos do not vanish and do not get a made-up date: they are listed one by one, each with its reason, and next to them there is a field where you type the date by hand. As long as the field is empty the photo is not downloaded, and at the end the page says which ones were skipped. If there is only the date of the last edit, or a date in the file name, like WhatsApp ones, it offers it and uses it only if you tap it. And the date typed on one photo goes with one tap on all the ones that have none.

The date typed by hand goes on the photo and not into the hidden data. In there only the date written by the camera belongs: mixing them would mean that in a year nobody knows which of the two is true. The same field also fixes a wrong date, for example the one of a camera stuck on summer time.

How the stamp comes out

The film camera style is the one of nineties compacts: orange seven-segment digits, with that faint glow the light left on the film, and the year written with an apostrophe. The digits are drawn segment by segment, so they come out identical on every phone. The plain style is white with a light shadow.

The size is measured on the short side of the photo, so a portrait and a landscape shot from the same phone get the same stamp. On a 12 megapixel photo, 4032 by 3024, the medium size gives digits 127 pixels tall and keeps them 136 pixels from the edge; the small one gives 91, the large one 181.

The time is the one the camera clock showed where the photo was taken, and it stays that. A sunset shot in New York at 20:15 comes out 20:15 even if you open the photo in Rome, where it was 2:15 the next day: converting it to your time zone would be a mistake, not a courtesy.

Many photos at once, HEIC and the ZIP

Every row has its own button to download that photo alone; the main button prepares them all and puts them in a ZIP, where each file carries the time of the shot as its own time, so when you unpack it you find them already in date order (except those from before 1980, which the ZIP format cannot date). The photos come out as high quality JPG, at their original size.

iPhone HEIC photos open here too: on Safari the system reads them, on other browsers a decoder that this page downloads from the site itself only when a HEIC arrives, because it weighs more than a megabyte. The automatic test of this page runs on Chromium, so the Safari path is not tested here. If all you need is to change format, without a date, there is Convert HEIC to JPG.

An honest limit: every 12 megapixel photo takes about 100 megabytes of memory while it is drawn. On an old phone, with fifty photos, the final ZIP can grow too large for the browser memory. If that happens, do them in groups of twenty.

What it does not do

It does not change the date in the hidden data, not even when you type one by hand, and it does not fix the time of a camera with the wrong clock: that takes a program that edits the EXIF.

It does not keep what is not EXIF: Live Photos, portrait depth and the XMP blocks of editing programs do not come through, because the file that comes out is a new JPG. It does not work on videos. And it does not write free text, such as a dedication or a place: for that there is Add text to a photo.