You're asking two completely unrelated questions here. To rephrase: 1. How can I provide Google with dates in a format that Google's scraper will recognize, as specified in [Rich snippets - Reviews](https://support.google.com/webmasters/answer/146645?hl=en)? 2. How can I accumulate time periods and present the result in a format suitable for humans? Asking two unrelated question in one question is depreciated on SE, and will usually get your question closed, but I am going to answer them anyway. **First question**: The ISO 8601 format requested by Google is `YYYY-MM-DD` with leading zeros if required, so July the 4th 2013 would be `2013-07-04`. To format the ISO date you can use the PHP function [`date`](http://php.net/manual/en/function.date.php) like this: $isodate = date('Y-m-d', $timestamp); where `$timestamp` is an integer with the number of seconds that has elapsed since the Unix Epoch (January 1 1970 00:00:00 GMT). Further, Google expects the `$isodate` string to be embedded in the page attached to the `dtreviewed` property using the syntax one of three metadata schemes (microdata, microformats, or RFDa). You do this in Drupal by [overriding the template](http://www.ostraining.com/blog/drupal/drupal-overrides/) of page, node, etc. you want to embed the `dtreviewed` property in. **Second question**: To accumulate time periods, you need to convert periods input by users (such as "1 hour and 5 minutes" or "01:05") to an integer format with seconds resolution. To convert to seconds you multiply the days with 86400, the hours with 3600 and the minutes with 60, so "1 hour and 5 minutes" becomes: 1 (hour) * 3600 + 5 (minutes) * 60 + 0 (seconds) = 3900 (seconds) and "2 hours and 25 minutes" becomes: 2 (hour) * 3600 + 25 (minutes) * 60 + 0 (seconds) = 8700 (seconds) To accumulate, you just add the seconds: 3900 + 8700 = 12600 (seconds) To display in a suitable format, you can use [`format_interval`](https://api.drupal.org/api/drupal/includes!common.inc/function/format_interval/7). $interval = 3900 + 8700; $intervalstring = format_interval($interval, 2); and `$intervalstring` will now be: 3 hours 30 minutes (You will lose the "and" by using this standard function, if this "and" is important, you'll need to write your own.) For avoidance of misunderstanding: Goggle is *not* interested in your time period data. A time period is typically an interval made up of **hours** and **minutes**, and not attached to a particular date. Google wants dates (as in **year**, **month** and **day of month**). Dates and time periods are different things, and there is no way you can format a *time period* as a *date*, or vice versa.