diff -uprb a/token.tokens.inc b/token.tokens.inc --- token.tokens.inc 2015-02-28 08:55:47.000000000 -0700 +++ token.tokens.inc 2016-05-17 04:33:09.781796240 -0600 @@ -1226,7 +1226,12 @@ function profile_tokens($type, $tokens, $replacements[$original] = $sanitize ? check_markup($value, filter_default_format($account), '', TRUE) : $value; break; case 'date': - $timestamp = gmmktime(0, 0, 0, $value['month'], $value['day'], $value['year']); + + // When displaying dates, it's using the user's timezone. Since we are in NA with a + // negative offset, it's falling back to the previous day + $gmtOffset = (date('Z') / 60 / 60) *-1; + + $timestamp = gmmktime($gmtOffset, 0, 0, $value['month'], $value['day'], $value['year']); $replacements[$original] = format_date($timestamp, 'medium', '', NULL, $language_code); break; case 'url': @@ -1251,8 +1256,12 @@ function profile_tokens($type, $tokens, // Chained token relationships. foreach ($profile_fields as $field) { if ($field->type == 'date' && isset($account->{$field->name}) && $field_tokens = token_find_with_prefix($tokens, $field->token_name)) { + // When displaying dates, it's using the user's timezone. Since we are in NA with a + // negative offset, it's falling back to the previous day + $gmtOffset = (date('Z') / 60 / 60) *-1; + $date = $account->{$field->name}; - $replacements += token_generate('date', $field_tokens, array('date' => gmmktime(0, 0, 0, $date['month'], $date['day'], $date['year'])), $options); + $replacements += token_generate('date', $field_tokens, array('date' => gmmktime($gmtOffset, 0, 0, $date['month'], $date['day'], $date['year'])), $options); } } }