I'm retrieving the creation date from a photo with exif_read_data PHP function (see the code below.) The dates retrieved from photos that haven't been modified return "Date Taken". Those that have been modified - "Date Modified". Is there a way to get the date a photo was taken, ignoring the "Date Modified" field?
$exif_data = exif_read_data ($filename);
if (!empty($exif_data['DateTime'])) {
$exif_date = $exif_data['DateTime'];
}
Thank you.
Edit: I think $exif_data['DateTime'] uses the first available date field. Since unmodified images had the same value for "Date Modified" and "Date Taken" it was always retrieving "Date Modified" in my case.
Okay, I know this is a bit late as this question was posted a year ago, but I am posting this answer because I had the same question and my husband showed me a trick or two about how to get the answer, so I am sharing it. Write a php script to print out the exif_read_data array and you will find all sorts of interesting information. This (below) was printed on command line to stdout using print_r(). If you scroll down you will see two very interesting keys: [DateTime] => 2011:06:21 17:50:57 and [DateTimeOriginal] => 2011:06:04 08:56:22
I hope these will help you get what you need.
Array ( [FileName] => Pirate(F).JPG [FileDateTime] => 1405733742 [FileSize] => 4017033 [FileType] => 2 [MimeType] => image/jpeg [SectionsFound] => ANY_TAG, IFD0, THUMBNAIL, COMMENT, EXIF [COMPUTED] => Array ( [html] => width="2592" height="3888" [Height] => 3888 [Width] => 2592 [IsColor] => 1 [ByteOrderMotorola] => 1 [ApertureFNumber] => f/16.0 [Thumbnail.FileType] => 2 [Thumbnail.MimeType] => image/jpeg ) [Make] => Canon [Model] => Canon EOS DIGITAL REBEL XS [Orientation] => 1 [XResolution] => 4718592/65536 [YResolution] => 4718592/65536 [ResolutionUnit] => 2 [Software] => QuickTime 7.6.9 [DateTime] => 2011:06:21 17:50:57 [HostComputer] => Mac OS X 10.5.8 [YCbCrPositioning] => 1 [Exif_IFD_Pointer] => 260 [THUMBNAIL] => Array ( [Compression] => 6 [XResolution] => 4718592/65536 [YResolution] => 4718592/65536 [ResolutionUnit] => 2 [JPEGInterchangeFormat] => 628 [JPEGInterchangeFormatLength] => 4867 [YCbCrPositioning] => 1 ) [COMMENT] => Array ( [0] => AppleMark ) [ExposureTime] => 1/200 [FNumber] => 16/1 [ExposureProgram] => 2 [ISOSpeedRatings] => 400 [ExifVersion] => 0220 [DateTimeOriginal] => 2011:06:04 08:56:22 [DateTimeDigitized] => 2011:06:04 08:56:22 [ShutterSpeedValue] => 499712/65536 [ApertureValue] => 524288/65536 [ExposureBiasValue] => 0/1 [MeteringMode] => 5 [Flash] => 9 [FocalLength] => 18/1 [ColorSpace] => 1 )
The solution is easier then I thought. I was referring to a wrong tag. To get date taken use:
$exif_data['DateTimeOriginal'];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With