我如何(在ASP .NET MVC中)获取当前访问者的CultureInfo(基于他/她的浏览器语言)?
我不知道从哪里开始.我试着查看浏览器发送的"Accept-Languages"标题.但这是最好的方式吗?
我需要根据IP或http标头知道我的用户目前在哪个时区.
关于这个问题,我得到了很多答案,但我无法理解这些答案.有人说使用-new Date().getTimezoneOffset()/60(从这里).但是这是什么意思?
我date_default_timezone_set("Asia/Calcutta");在(index.php)页面的根目录中有一个.因此,我必须动态获取时区并将其设置为代替Asia/Calcutta.
使用ToLocalTime()时,如何确定本地时间?是服务器或客户端的本地时间吗?我的假设是运行应用程序的服务器.
2007年,我们改用夏令时的日子发生了变化.在此更改之前属于DST扩展范围内的任何日期都会在Chrome和Firefox中报告错误的时区偏移.这就像Firefox和Chrome没有注意到DST曾经有过不同日子的事实.
如果您运行以下脚本,它将报告240分钟的偏移量.这是不正确的,它应该报告300分钟.IE10正确地做到了这一点.有谁知道修复?
alert(new Date('11/04/2004').getTimezoneOffset());
Run Code Online (Sandbox Code Playgroud)
更新:
这是我刚刚攻击的一段有趣的代码(见下文).令人惊讶的是,除了IE,每个浏览器的大多数日期都有多远.将开始日期和结束日期与此进行比较:http://www.timeanddate.com/worldclock/timezone.html?n = 77&syear = 2000
我最后用我自己的getTimezoneOffset替换了Date的原型,它根据硬编码表计算它.这对我们有用,因为我们只在美国做生意.这是我能想象到的最糟糕的解决方案......
<!DOCTYPE html>
<html>
<head>
<title>Moment Test</title>
<script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.0.0/moment.min.js"></script>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
var lastOffset = null;
var $tbody = null;
var endDate = new Date('01/01/2021');
function addDate(d) {
if($tbody === null)
$tbody = $('#dates');
var offset = d.getTimezoneOffset();
var s = '';
if(lastOffset != offset) {
if(lastOffset != null)
s = '<tr style="background-color: red;">';
lastOffset = offset;
}
else {
s = '<tr>';
}
var m = …Run Code Online (Sandbox Code Playgroud) 我知道我们可以改变当前线程的当前文化.我知道,我们不能让TimeZoneInfo从CurrentCulture 因为一个文化可能有很多的时区 如美国
但是使用相同的技术来处理当前线程的TimeZone.
如果我们能做出这样的事情,那将是非常好的:
TimeZone.CurrentTimeZone = TimeZoneInfo.FindSystemTimeZoneById("timezone id");
Run Code Online (Sandbox Code Playgroud) timezone ×3
c# ×2
datetime ×2
javascript ×2
.net ×1
asp.net ×1
asp.net-mvc ×1
firefox ×1
node.js ×1
php ×1