【问题标题】:Pull moment() js from a server and not a local pc从服务器而不是本地 pc 中提取 moment() js
【发布时间】:2015-06-29 00:19:42
【问题描述】:

这可能吗,我正在使用jQuery validate() 中的一个函数来验证出生日期以确定某人的年龄,我的问题是如果这个人的电脑有错误的日期,这个验证不再有效,如何获得moment() 从 AUS Timezone 服务器获取确切的日期和时间?所以它会忽略 PC 的日期和时间?

这可能吗?这是我的功能,我可以做些什么来改进这个功能,以便从服务器中提取当前日期和时间,但是确切的 moment() 因为我需要确定当天的年龄。

我最初想在隐藏字段中回显 php 日期并通过 ID 获取 val(),但这似乎不是正确的做法。

//validate the date of birth to see if eligible you are eligible for enrolment using moment.js
jQuery.validator.addMethod("validateDob", function (value, element) {

    var birthDate = moment(value, "DD/MM/YYYY");
    var currentDate = moment();

    currentDate.subtract("years", 18);

    if(!birthDate.isValid()){
        //if birthDate is NOT a valid date            
        return false;
    }else if (currentDate.isAfter(birthDate)){
        //birthDate is 18+
        return true;  
    }else{
        //birthDate is not 18  
        return false;
    }

}, "You must be 18 and over to proceed");

【问题讨论】:

  • 当他们提交表单时,您可以在他们的电脑上以及在服务器端(服务器时间)执行前端检查。
  • 您还可以发送一个 ajax 请求,其中包含用户的出生日期,以将其与服务器时间进行比较。这样你就不需要像你说的那样将它与 moment.js 进行比较,这取决于他们可以篡改的日期。

标签: javascript jquery html timezone


【解决方案1】:

我自己解决了这个问题,不确定这是否是正确的方法,我设法在我的 php 文件中调用 php date 函数,将其传递给隐藏字段。

使用 jQuery 按 ID 获取隐藏字段值,并使用该字符串将其传递给 moment() 函数,如下所示:

php 文件

  1. $currentDate = date('d/m/Y');

html文件

  1. <input type="hidden" id="currentDate" value=" <?php echo $currentDate; ?>" />

js文件

  1. var dateString = $("#currentDate").val(); moment(dateString, "DD/MM/YYYY")

它似乎按预期工作我使用这种方法没有任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多