Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较数组中的日期与javascript中的不同时区 大家都认为我在数组2中存储了4个日期,它们来自不同的时区,现在如果我想找出最新的日期并在JavaScript中意识到,那么有人能告诉我该怎么做吗?_Javascript_Date_Timezone - Fatal编程技术网

比较数组中的日期与javascript中的不同时区 大家都认为我在数组2中存储了4个日期,它们来自不同的时区,现在如果我想找出最新的日期并在JavaScript中意识到,那么有人能告诉我该怎么做吗?

比较数组中的日期与javascript中的不同时区 大家都认为我在数组2中存储了4个日期,它们来自不同的时区,现在如果我想找出最新的日期并在JavaScript中意识到,那么有人能告诉我该怎么做吗?,javascript,date,timezone,Javascript,Date,Timezone,谢谢。要将日期与不同的时区进行比较,您需要将每个日期转换为同一时区,例如您的本地时区,这样所有日期都将位于同一时区,您将能够进行比较 为此,您有一个日期构造函数新的日期,该日期取一个日期并将其转换为您的本地时区,完成此操作后,您需要做的就是执行您的逻辑 举个例子: var date1 = new Date("Wed Mar 25 2015 09:56:24 GMT+0900 (Tokyo Time)"); //new Date will take your time string in toky

谢谢。

要将日期与不同的时区进行比较,您需要将每个日期转换为同一时区,例如您的本地时区,这样所有日期都将位于同一时区,您将能够进行比较

为此,您有一个日期构造函数新的日期,该日期取一个日期并将其转换为您的本地时区,完成此操作后,您需要做的就是执行您的逻辑

举个例子:

var date1 = new Date("Wed Mar 25 2015 09:56:24 GMT+0900 (Tokyo Time)"); //new Date will take your time string in tokyo and convert it into your local time zone date and so on...
var date2 = new Date("Wed Mar 25 2015 09:56:24 GMT+0100 (W. Europe Standard Time)");
var date3 = new Date(Date.now());
var date4 = new Date(Date.now());

var array = [date1 , date2 ,date3 ,date4 ];

var maxDate = new Date(date1);
var minDate = new Date(date1);

for (var i =1 ; i<array.length ; i++){
     if (new Date(array[i]) > maxDate )
        maxDate = new Date(array[i]);

     if (new Date(array[i]) < minDate )
        minDate = new Date(array[i]);
}

alert(minDate.toString() + " " + maxDate.toString());

//Tokyo time is the earliest because is +09:00

//use minDate and maxDate here as you want.

请使用工作代码,不建议使用理论将日期转换为UTC和compare@VinodLouis-日期是UTC。@RobG新日期和之间存在差异。要使用UTCString,请查看此本地时间和UTCWelcome to StackOverflow!不幸的是,没有人能为你的问题提供一个好的答案,因为你没有提供足够的信息。即使是Oriel的尝试也对输入值的实际情况做了很多假设。您需要提供显示特定输入值示例的代码。请阅读并从帮助中心获取。新建Datedate1.ToutString有什么意义?如果要复制日期,则新的Datedate1就足够了。代码–只有答案没有帮助,你应该解释OP的问题以及如何解决。new Datedate1不好,因为他想比较不同时区的日期,所以ToutString正在进行转换,但它返回字符串,我想使用日期进行比较。不,它根本没有进行任何转换。日期对象只跟踪一个特定的时间点,以Unix纪元(显式地以UTC表示)之后的毫秒为单位。Date对象使用本地时间的唯一时间是当您隐式或显式调用toString时,或者如果您使用特定于本地时间的函数(如getHours等)。在代码中,当您在警报中隐式转换为字符串时,您只在最后使用本地时间。代码中的其他所有内容都使用UTC。请记住,ToutString在输出中包含GMT,当由日期构造函数解析时,它会将时间视为UTC/GMT。这里没有转换。这不应被标记为已接受的答案。另一种思考方法是,您创建的数组由四个日期对象组成。由于日期对象只能跟踪世界时间中的特定瞬间,因此您自动不会遇到OP询问的情况。日期对象不知道时区,除非在显示它们时,然后只在本地时区显示。