繁体   English   中英

Javascript - 仅在美国东部标准时间上午 9 点以下时允许

[英]Javascript - Only allow if less than 9am EST

我有一个 WordPress / WooCommerce 网站。 在结帐页面上,我有一个日期选择器,允许用户选择发货日期。 我允许在美国东部标准时间上午 9 点前当天发货,无论当地时间如何。

// Same shipping up till 9am EST
var shipTime = 0;
var currentTime = new Date();
if (currentTime.getHours() >=9){
    shipTime = 1;
} 

$( ".shipdate").datepicker( {
    minDate: shipTime
});

问题是服务器时间是UTC。 我需要调整脚本,以便相应地处理美国东部时间上午 9 点之后下的订单。

我曾尝试使用 get getUTCHours 来计算美国东部时间上午 9 点,但我不太确定这是这样做的方法。

// Same shipping up till 9am
// UTC time at 9am is 13
var shipTime = 0;
var currentTime = new Date();
if ( currentTime.getUTCHours() >= 13 ) {
    shipTime = 1;
}     

$( ".add_delivery_date").datepicker( {
    minDate: shipTime,  
    firstDay: 0,
    beforeShowDay: setHolidays
});

任何更新此脚本的帮助将不胜感激。

JavaScript 本机 Date 对象只知道两个时区,UTC 和用户的语言环境时区(即使如此,您可以提取的有关语言环境时区的信息量是有限的)。 你可以在 UTC 工作并减去 4 小时得到 EDT,但你真的总是想要 EDT 而不是 EST 吗? 我建议您使用一个库,我认为您可以尝试使用 moment.js 在时区之间进行转换

http://momentjs.com/timezone/docs/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM