javascript - 下载当前用户时间作为文件名

标签 javascript php html download

简而言之

如何让文件名在下载时包含用户的本地时间?
示例:

<a href="/pizza.pdf" download="pizza-CURRENT-USER-TIME-HERE.pdf">Click here</a>

中长

名称中包含用户时间的下载怎么样?

使用 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/

相关文章:

javascript - 链接外部 JS 库并收到 XMLHttpRequest 错误

javascript - Vue-router嵌套路由未加载我的组件页面

php - 获取/检索另一列相同值下的多个字段值

php - 设置从 EBS 共享加载文件的超时

html - 表单中的 CSS Flexbox

html - 用不失真的图像填充圆圈

html - CSS 内容 : attr() on HTML5 progress doesn't work

javascript - ReactJS 中的多语言网站

javascript - 多个表单,多个提交按钮,1个使用ajax处理表单

php.ini session.cookie_domain - 放置什么?