JavaScript $.datepicker.formatDate 有偏移量?
JavaScript $.datepicker.formatDate With Offset?
我设法拼凑了一些 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);
以及两者之间的许多类似变体,none 其中似乎有效(所有这些都一起剥离日期格式或生成 NaN-undefined-NaN)。我认为我在 TimezoneOffset()*60*1000 方面走在正确的轨道上,我只是不知道它会去哪里。
有人能帮我指明正确的方向吗?提前感谢您的任何回复!
首先你得到一个 UTC 日期对象
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 让我的约会以我想要的方式出现:
$(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);
以及两者之间的许多类似变体,none 其中似乎有效(所有这些都一起剥离日期格式或生成 NaN-undefined-NaN)。我认为我在 TimezoneOffset()*60*1000 方面走在正确的轨道上,我只是不知道它会去哪里。
有人能帮我指明正确的方向吗?提前感谢您的任何回复!
首先你得到一个 UTC 日期对象
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);