gpt4 book ai didi

JavaScript $.datepicker.formatDate 带偏移量?

转载 作者:行者123 更新时间:2023-12-03 07:56:59 27 4
gpt4 key购买 nike

我成功地编写了一些 JavaScript,让我的日期按照我想要的方式显示:

$(document).ready(function () {
$('span.date').each(function() {
var dateFormat = $(this).text()
var dateFormat = $.datepicker.formatDate('dd-M-yy', new Date(dateFormat));
$(this).html(dateFormat + "<br>");
});
});

但是,它当前显示的是 1 天前的日期。 Google 告诉我这是由于我的数据库中的时区偏移量/日期被设置为 UTC,没有时区(仅日期字段,时间不重要)。

据我所知,我需要 Date() 的偏移量,但我无法弄清楚如何使用当前布局来做到这一点。

我这里有一个jsfiddle: http://jsfiddle.net/ytaLvp5y/

从jsfiddle中可以看出,使用“dd-M-yy”格式时,日期“2015-12-31”显示为“30-Dec-2015”。

我在 StackExchange 上找到的一些我尝试过的示例(请记住,我几乎没有 JavaScript 经验):

d.setTime( d.getTime() + d.getTimezoneOffset()*60*1000 );

以及

var dateFormat = $.datepicker.formatDate('dd-M-yy', new Date(dateFormat)*60*1000);

之间还有许多类似的变体,但似乎都不起作用(所有这些变体都一起剥离了日期格式或产生 NaN-未定义-NaN)。我认为 TimezoneOffset()*60*1000 我走在正确的轨道上,我只是不知道它去了哪里。

有人能帮我指出正确的方向吗?预先感谢您的任何回复!

最佳答案

首先你得到一个 UTC Date 对象

var date = new Date("2015-12-31");

接下来查找本地 TZ 的偏移量

var offset = date.getTimezoneOffset() * 60 * 1000; // milliseconds

现在将其添加到原始日期的毫秒表示形式中并创建一个新日期。

var myDate = new Date(date.getTime() + offset);

然后应用格式

$.datepicker.formatDate("dd-M-yy", myDate);

关于JavaScript $.datepicker.formatDate 带偏移量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34756219/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com