【问题标题】:How to set specific timezone in datepicker using jquery only?如何仅使用 jquery 在日期选择器中设置特定时区?
【发布时间】:2017-08-17 11:59:16
【问题描述】:

我有一个字段并使用 jQuery 在其上应用 datepicker。

目前正在从系统/浏览器获取时间。

我希望它从特定时区获取时间,例如 America/new_york。

endDate 参数是设置日历的关键,意味着用户不应该能够从未来选择date。目前看起来是这样的

代码sn-p是:

jQuery('#convo_start_date').datepicker({
    format: 'dd M yyyy',
     endDate: '+0d',
     autoclose: true,
     showButtonPanel: true, 
     todayBtn: 'linked'
    }).on('change', function () {
        jQuery('.datepicker').hide();
        jQuery('#convo_end_date').attr('value',jQuery('#convo_start_date').val());
    });

问题:有没有办法将默认的特定时区设置为 America/new_york 不允许未来的日期(根据这个特定的时区)?

注意:我已经尝试过moment.js,但它与我目前在 jQuery 中的工作相冲突,是否有任何参数 datepicker 库提供了与时区一起设置的时间?

【问题讨论】:

  • 我的建议是让 moment.js 库工作。您最终需要从某个地方获取时区数据。
  • @alalp 使用 moment.js 时出现错误TypeError: dbg is undefined
  • 不看代码很难判断。至少,moment().format() 行应该可以工作。否则,我的猜测是,还有其他一些使用 moment 命名空间的插件。

标签: javascript jquery date datetime datepicker


【解决方案1】:

如果您使用 jquery ui datepicker 插件,您可以将 maxDate 选项设置为当前日期,这样用户就无法选择未来的日期。

您需要转换到特定时区。您可以根据需要更改targetTimeOffset 变量。

var d = new Date();
var targetTimeOffset  = -4*60; //desired time zone, taken as GMT-4
d.setMinutes(d.getMinutes() + d.getTimezoneOffset() + targetTimeOffset );

检查 Fiddle:http://jsfiddle.net/mpsingh2003/8w8v9/3387/ 如果这是您要查找的内容

【讨论】:

    【解决方案2】:

    您可以使用Joda-Time 库来获取您的解决方案。

    检查他们提供的课程,例如org.joda.time.DateTimeZone

    您可以根据 Joda Time 中定义的规范 ID 获取 DateTimeZone

    请查看link 获取 API 文档。

    希望这对您有所帮助。谢谢。

    【讨论】:

    • 这回答了 java 的问题,但不是 javascript。
    猜你喜欢
    • 1970-01-01
    • 2021-06-06
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    相关资源
    最近更新 更多