简而言之
如何让文件名在下载时包含用户的本地时间?
示例:
<a href="/pizza.pdf" download="pizza-CURRENT-USER-TIME-HERE.pdf">Click here</a>
中长
- 我知道我可以用 PHP 给它服务器的本地时间,如下所述:
How to get the current date and time in PHP? - 我知道我可以使用 JavaScript 在屏幕上打印用户的本地时间,如下所述:
How to show current time in JavaScript in the format HH:MM:SS?
名称中包含用户时间的下载怎么样?
使用 PHP,我知道我可以echo
一个变量到文件名中,像这样:
PHP:
date_default_timezone_set('America/New_York');
$current_date = date('Y-F-j-h-i-s');
HTML:
<a href="/pizza.pdf" download="pizza-<?php echo $current_date; ?>.pdf">Click here</a>
或者,使用 JavaScript,我可以在链接(或屏幕上的任何位置)中打印用户的本地时间。
如何获取用户的本地时间作为下载属性的值?
我愿意使用 PHP、JS、JQuery 等。
最佳答案
您可以使用 onclick
属性最简单地完成此操作。
<a href="/pizza.pdf" download="pizza-CURRENT-USER-TIME-HERE.pdf" onclick="this.download='pizza-' + getFormattedTime() + '.pdf'">Click here</a>
或者,如果你想使用 Jquery:
在 HTML 中(添加一个 id 以便我们可以选择):
<a href="/pizza.pdf" download="pizza-CURRENT-USER-TIME-HERE.pdf" id="download">Click here</a>
在 JS 中:
$("#download").click(function() {
this.download= 'pizza-' + getFormattedTime() + '.pdf'
}
现在,当用户点击链接时,下载名称将立即更改为当前时间。
这是一个如何获取时间的示例(主要基于 this answer ):
function getFormattedTime() {
var today = new Date();
var y = today.getFullYear();
// JavaScript months are 0-based.
var m = today.getMonth() + 1;
var d = today.getDate();
var h = today.getHours();
var mi = today.getMinutes();
var s = today.getSeconds();
return y + "-" + m + "-" + d + "-" + h + "-" + mi + "-" + s;
}
关于javascript - 下载当前用户时间作为文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44484882/