Advertisement
Guest User

AR Script: add time offset to datetimeoriginal

a guest
Dec 26th, 2016
416
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.   const OFFSET_SEC  = 0;
  2.   const OFFSET_MIN  = 0;
  3.   const OFFSET_HR   = 0;
  4.  
  5.   const POS_YR = 1, POS_MNT = 2, POS_DAY = 3, POS_HR = 4, POS_MIN = 5, POS_SEC = 6;
  6.  
  7.   var hrs = 0, min = 0, sec = 0;
  8.  
  9.     var DTO = "";
  10.     var aDateTime = [];
  11.     //regular expression to extract date from datetimeoriginal (which is a date and a time)
  12.     var reDateTimeSplit = /(\d{4}):(\d{2}):(\d{2})\s(\d{2}):(\d{2}):(\d{2})/;
  13.     //extract datetimeoriginal from file
  14.     DTO = app.getItem(index).exifToolValue("DateTimeOriginal");
  15.  
  16.     if (DTO.length != 0) {
  17.     aDateTime = reDateTimeSplit.exec(DTO);
  18.  
  19.     // add the datetimeoriginal values with the offsets
  20.     hrs = Number(aDateTime[POS_HR]) + OFFSET_HR;
  21.     min = Number(aDateTime[POS_MIN]) + OFFSET_MIN;
  22.     sec = Number(aDateTime[POS_SEC]) + OFFSET_SEC;
  23.  
  24.     // convert seconds to minutes and minutes to hours if the offset goes beyond 60 sec or 60 min
  25.     min+= (sec - (sec % 60)) / 60;
  26.     hrs+= (min - (min % 60)) / 60;
  27.     min%= 60;
  28.     sec%= 60;
  29.  
  30.     //return the final value
  31.         return aDateTime[POS_YR] + aDateTime[POS_MNT] + aDateTime[POS_DAY] + "_" + zpad(hrs.toString(), 2) + zpad(min.toString(), 2) + zpad(sec.toString(), 2);
  32.         }
  33.     else{
  34.         return null
  35.     }
  36.  
  37. // Function that add leading zeros to any string
  38. function zpad(str, nb_digits) {
  39.     if (str.length < nb_digits)     { return (Array(nb_digits - str.length + 1).join('0') + str); }
  40.     else                            { return str; }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement