How do I add updated timestamp to a file url to ensure people download the latest version? I'd like to add the last updated timestamp to the uploaded file name e.g. my.pdf?ver=123413414

The file is uploaded on a regular basis and I'd like people to access the latest version. 

I can't see a module/formatter to do this. 

I can write 
- javascript to add the timestamp to the end but the file would never be cached. 
- write a file formatter that adds the last updated timestamp to the end of the download link.
- write something that calls "theme_file_link" 

what is the best approach?

Thanks
The best approach would be to actually rename the file both on the file system and the database and incorporate the upload time in file name. 

Appending time after the question mark in URL would have purely informative purpose. And if that's what you want then create a custom module and place the following code in it:

function my_custom_module_node_view_alter(&amp;$build) {
  if (isset($build['field_file'])) {
    $time = gmdate("Y-m-d:H:i", $build['field_file'][0]['#file']-&gt;timestamp);
    $build['field_file'][0]['#file']-&gt;filename = $build['field_file'][0]['#file']-&gt;filename.'?'.$time;
  }
}


If you have multiple files per node then use the following code instead:

function my_custom_module_node_view_alter(&amp;$build) {
 if (isset($build['field_file'])) {
    foreach ($build['field_file'] as $key =&gt; $file) {
      if (is_numeric($key)) {
        $time = gmdate("Y-m-d:H:i", $file['#file']-&gt;timestamp);
        $build['field_file'][$key]['#file']-&gt;filename = $build['field_file'][$key]['#file']-&gt;filename.'?'.$time;
      }
    }
  }  
}