gpt4 book ai didi

javascript - 有没有一种可靠的方法可以使用 javascript 将天真的 UTC 时间戳转换为本地时间?

转载 作者:行者123 更新时间:2023-11-29 10:20:58 26 4
gpt4 key购买 nike

确定用户的时区服务器端并从 UTC 转换已证明麻烦多于其值(value)。

javascript/jquery 是否有一种可靠的方法来确定用户的时区并将偏移量应用于 UTC 日期时间戳 (2012-08-25 10:59:56.511479) 并以我想要的格式输出 (Aug 25 ' 12 - 上午 10:59)?

jquery 代码看起来像什么

// dom ready
$('span.localtime').each(function(e) {
// get stamp and apply conversion
});

最佳答案

.getTimezoneOffset() 可用于日期对象,并为您提供与 UTC 的分钟偏移量。

var offset = (new Date()).getTimezoneOffset();

// convert myUtcDate to a date in local time
myUtcDate.setMinutes(myUtcDate.getMinutes() + (offset*-1));

因此:

$('.span.localtime').each(function() {
var myUtcDate = new Date($(this).html()); // assuming "2012-08-25 10:59:56.511479"
myUtcDate.setMinutes(myUtcDate.getMinutes() + (myUtcDate.getTimezoneOffset() * -1));

$(this).html(myUtcDate.toString());
});

请注意,myUtcDate.toString() 可以替换为您想要的任何日期格式。在你的情况下,它可能看起来像

$(this).html(formatDate(myUtcDate));

function formatDate(d) {

var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];

var y = d.getFullYear().toString().slice(-2); // "12"
var m = months[d.getMonth()]; // "Aug"
var d = d.getDate(); // "25"

var ampm = 'AM';
var h = d.getHours();

if(h>=12) {
h -= 12;
ampm = 'PM';
}

if(h == 0)
h = 12;

var min = ("00" + d.getMinutes()).slice(-2);

return m + " " + d + " '" + y + " - " + h + ":" + min + ampm;
}

您可能想使用 date format plugin以更简洁、更可靠的方式格式化日期。

关于javascript - 有没有一种可靠的方法可以使用 javascript 将天真的 UTC 时间戳转换为本地时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12161006/

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