Javascript 日期和jsdate对象之间的差异

Javascript 日期和jsdate对象之间的差异,javascript,angular,datetime,datepicker,Javascript,Angular,Datetime,Datepicker,我已经在angular 4应用程序中集成了Mydatepicker,我在页面上集成了一个日历,当我选择一个日期时,调用REST api,并使用post方法发送所选日期的时间戳,以从api获得结果 我在控制台中检查了日期和时间戳,发现jsdate对象返回selected中的上一个日期,下面是我的对象登录日期selecte date: Object { year: 2017, month: 11, day: 25 } epoc: 1511548200 formatted: "25.11.2017"

我已经在angular 4应用程序中集成了Mydatepicker,我在页面上集成了一个日历,当我选择一个日期时,调用REST api,并使用post方法发送所选日期的时间戳,以从api获得结果

我在控制台中检查了日期和时间戳,发现jsdate对象返回selected中的上一个日期,下面是我的对象登录日期selecte

date: Object { year: 2017, month: 11, day: 25 }
epoc: 1511548200
formatted: "25.11.2017"
jsdate: Date 2017-11-24T18:30:00.000Z
proto: Object { … }

它如何纠正这一点?是否有任何配置来控制它,或者如果它的方式正确,那么我如何处理这个问题?

我想我已经解决了。这是处理日期的JavaScript方法

格式化日期表示日期选择器上的选定日期,但您的系统可以有不同的时区设置,因此选定日期的相对日期时间对于GMT将不同,这就是jsdate的含义

jsdate:表示GMT的日期时间对象

如果您想获得实际选择的日期,则需要使用getDay、getMonth等生成该日期,或者可以使用时区偏移量进行调整

调整时区偏移可能是一个更好的选择,因为它将适用于所有系统和时区

使用epoc,可以检查所选日期时间戳的时间和GMT之间的差异有多大


将有助于使用javascript日期对象{year:2017,month:11,day:25}不是日期对象。它是一个具有日期属性的普通对象<代码>日期2017-11-24T18:30:00.000Z是一个日期对象。另外,如果您是
2017-11-24
,并且说它返回上一个日期,则您缺少时间戳值
T18:30:00.000Z
。如果尝试使用此值创建日期对象,则将获得正确的日期。尝试
jsdate.getDate()
我们不知道您发送的是什么,api期望什么,等等?@charlietfl是的,但不管api需要什么,我只是安慰了datepicker输出,我提到的api只是为了我要做的。只是更新了问题并删除了api的一部分。当然,如果您发送的内容返回不同日期的数据,这很重要。时间戳不指示它是否为utc时间,而显示的日期字符串则指示它是否为utc时间