【问题标题】:I want my Javascript to expire in 30 days我希望我的 Javascript 在 30 天内过期
【发布时间】:2012-10-12 04:07:22
【问题描述】:

我正在寻找一些可以检查是否已过 30 天的代码,如果是,则脚本将停止工作;如果没有,它会调用start() 函数。

我只需要用 Javascript 来做。

var date = 11;
var month = 10;
var year = 2012;

function Checkday() {
    if ( // check 30 days ) {
        start();
    } else {
        stop();
    };
};

我也想知道是否有办法在 JS 文件中添加 PHP 代码。我知道这是一个愚蠢的问题,但我只是好奇。

提前致谢。

已编辑:

我们将出售 JS 文件,因此我们将在 JS 文件中设置日期。所以我们希望它检查到期时间并停止运行。

【问题讨论】:

标签: javascript


【解决方案1】:

我为你做了一个fiddle

var date = 10;
var month = 10;
var year = 2012;

var expires = new Date(year, month, date);
function checkDate() {
    var d = new Date();
    return(d>expires);
}

给你的 js 文件以 .php 结尾,并把 header('content-type: application/x-javascript'); 放在它的开头。现在你可以在里面<?php echo $variables; ?>。此解决方法不能在 ie* 中使用。

尽管如此:如果您正在销售 js 并希望在达到给定时间点时停止此功能:这无法通过 javascript 解决!任何人都可以编辑 javascript 文件——比如日期、月份、年份参数。除了你有一个 js 打包器,恕我直言,它不够安全。

【讨论】:

  • 你可以这样做:new Date(year, month, date);... 可能更好。
【解决方案2】:

这可能对你有帮助..

var date = 11;
var month = 10;
var year = 2012

function Checkday() {
    if ( !isExpired() ) {
        start();
        } else {
        stop();
    };
};

function isExpired() {

    var current = new Date(); 
    current = current.getTime(); 

    var dateToCheck = new Date(); 
    dateToCheck.setFullYear(year); 
    dateToCheck.setMonth(month); 
    dateToCheck.setDate(date + 30) 
    var checkdate = dateToCheck.getTime();

    return checkdate < current
}

【讨论】:

【解决方案3】:

愚蠢的问题,但是如何阻止您出售此 JavaScript 文件的人自己打开它并更改日期?您是否将此文件出售给他们,以便他们可以在他们的网站上使用它?我不得不想象他们会足够聪明地想到这一点。

另外,php 是服务器端语言,而 JavaScript 是客户端语言,所以直接将 php 放在 JS 文件中并没有什么好处。实际上,最好的选择是将日期信息保存在 cookie 中,并在调用函数之前对其进行检查。

【讨论】:

  • 我们有不错的打包程序,它将添加到 firefox 的插件中。
  • 我知道 php 是服务器端语言,但作为上面的答案,我必须最终链接到上面的 .php 检查
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-13
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
  • 2016-07-01
  • 2015-12-16
相关资源
最近更新 更多