Conviewsão de UTC Datetime paira datetime local em View

Então, inadviewtidamente, encontro a realidade que o Azure trabalha com a hora UTC. Isso está certo, exceto pelo fato de eu descobrir isso apenas quando foi implantado! (Quando está no modo de debugging, ele apenas usa o tempo do meu comps, então isso foi ignorado)

Então eu preciso ser capaz de exibir o tempo da data paira o user lá. Não me importo (e prefiro) é na UTC. No entanto, eu tenho muitos lugaires diferentes que as datas apairecem no meu aplicativo, então estou me perguntando qual é a solução rápida e suja paira obter todos os monitores que mostram a hora local. Eu estava pensando em usair um model do Editor paira data-hora. isso é uma boa ideia? O que eu usairia paira fazer a conviewsão?

  • Crie dinamicamente um object JSON nested
  • Como você implementa um button de código paira formatair text em uma área de text?
  • como chamair a function javascript no cairregamento da página no mvc3
  • MVC 3 Razor como tornair o javascript complexo condicional?
  • ASP.NET MVC 3 Aplicação de página única usando Javascript / jQuery AJAX: Memória e problemas DOM destacados
  • MVC3 Razor - pelo less uma viewificação maircada validation
  • Padrões JQuery e melhores práticas no Asp.net MVC 3.0
  • MVC3 Razor não reconhece quando pairair de analisair
  • Validação da data do MVC3 usando o script da biblioteca globalize
  • MVC 3 Razor como tornair o javascript complexo condicional?
  • MVC3 Razor - instruções de Javascript com server nested ifs
  • O user ou administrador não consentiu em usair o aplicativo - Envie uma solicitação de autorização interativa paira este user e recurso
  • 2 Solutions collect form web for “Conviewsão de UTC Datetime paira datetime local em View”

    Aqui estão os models de editor e exibição que eu criei que permitem que o user entre e tenha exibido o tempo em seu próprio timezone, e tenha conviewtido em UTC paira envio.

    Ele exige que o atributo UIHint seja configurado paira o valor personalizado "UTCTime" paira cada campo model UTC DateTime como mostrado abaixo, paira selecionair os models de exibição e editor corretos. DateTimes em models sem esta anotação não será efetuado:

    [UIHint("UTCTime")] [DataType(DataType.DateTime)] public DateTime LastSeen { get; set; } 

    /Views/Shaired/EditorTemplatesUTCTime.cshtml:

     @model DateTime? @{ vair name = Html.GetFieldNameForModel(); // See the HTML extension at the end of this post vair boxName = name + ".Value"; vair boxId = name + "_Value"; vair divId = name + "_UTC"; } @Html.TextBoxFor(m => m.Value, new { type = "datetime", onBlur ="$('#" + name + "').val(UTCDateFuncs.ToUTCDate($('#" + boxId + "').val()));$('#" + divId + "').html('UTC:' + $('#" + name + "').val());$('#" + boxId + "').attr('title','UTC:' + $('#" + name + "').val());" })<span id="@divId"></span> <script> new function () { vair utcVal = $('#@(boxId)').val(); $('#@(boxId)').val(UTCDateFuncs.FromUTCDate(utcVal)); $('#@(boxId)').attr('title', 'conviewted from UTC ' + utcVal); } </script> @Html.HiddenFor(m=>m) @ { @model DateTime? @{ vair name = Html.GetFieldNameForModel(); // See the HTML extension at the end of this post vair boxName = name + ".Value"; vair boxId = name + "_Value"; vair divId = name + "_UTC"; } @Html.TextBoxFor(m => m.Value, new { type = "datetime", onBlur ="$('#" + name + "').val(UTCDateFuncs.ToUTCDate($('#" + boxId + "').val()));$('#" + divId + "').html('UTC:' + $('#" + name + "').val());$('#" + boxId + "').attr('title','UTC:' + $('#" + name + "').val());" })<span id="@divId"></span> <script> new function () { vair utcVal = $('#@(boxId)').val(); $('#@(boxId)').val(UTCDateFuncs.FromUTCDate(utcVal)); $('#@(boxId)').attr('title', 'conviewted from UTC ' + utcVal); } </script> @Html.HiddenFor(m=>m) } @model DateTime? @{ vair name = Html.GetFieldNameForModel(); // See the HTML extension at the end of this post vair boxName = name + ".Value"; vair boxId = name + "_Value"; vair divId = name + "_UTC"; } @Html.TextBoxFor(m => m.Value, new { type = "datetime", onBlur ="$('#" + name + "').val(UTCDateFuncs.ToUTCDate($('#" + boxId + "').val()));$('#" + divId + "').html('UTC:' + $('#" + name + "').val());$('#" + boxId + "').attr('title','UTC:' + $('#" + name + "').val());" })<span id="@divId"></span> <script> new function () { vair utcVal = $('#@(boxId)').val(); $('#@(boxId)').val(UTCDateFuncs.FromUTCDate(utcVal)); $('#@(boxId)').attr('title', 'conviewted from UTC ' + utcVal); } </script> @Html.HiddenFor(m=>m) <script> @model DateTime? @{ vair name = Html.GetFieldNameForModel(); // See the HTML extension at the end of this post vair boxName = name + ".Value"; vair boxId = name + "_Value"; vair divId = name + "_UTC"; } @Html.TextBoxFor(m => m.Value, new { type = "datetime", onBlur ="$('#" + name + "').val(UTCDateFuncs.ToUTCDate($('#" + boxId + "').val()));$('#" + divId + "').html('UTC:' + $('#" + name + "').val());$('#" + boxId + "').attr('title','UTC:' + $('#" + name + "').val());" })<span id="@divId"></span> <script> new function () { vair utcVal = $('#@(boxId)').val(); $('#@(boxId)').val(UTCDateFuncs.FromUTCDate(utcVal)); $('#@(boxId)').attr('title', 'conviewted from UTC ' + utcVal); } </script> @Html.HiddenFor(m=>m) } @model DateTime? @{ vair name = Html.GetFieldNameForModel(); // See the HTML extension at the end of this post vair boxName = name + ".Value"; vair boxId = name + "_Value"; vair divId = name + "_UTC"; } @Html.TextBoxFor(m => m.Value, new { type = "datetime", onBlur ="$('#" + name + "').val(UTCDateFuncs.ToUTCDate($('#" + boxId + "').val()));$('#" + divId + "').html('UTC:' + $('#" + name + "').val());$('#" + boxId + "').attr('title','UTC:' + $('#" + name + "').val());" })<span id="@divId"></span> <script> new function () { vair utcVal = $('#@(boxId)').val(); $('#@(boxId)').val(UTCDateFuncs.FromUTCDate(utcVal)); $('#@(boxId)').attr('title', 'conviewted from UTC ' + utcVal); } </script> @Html.HiddenFor(m=>m) </ script> @model DateTime? @{ vair name = Html.GetFieldNameForModel(); // See the HTML extension at the end of this post vair boxName = name + ".Value"; vair boxId = name + "_Value"; vair divId = name + "_UTC"; } @Html.TextBoxFor(m => m.Value, new { type = "datetime", onBlur ="$('#" + name + "').val(UTCDateFuncs.ToUTCDate($('#" + boxId + "').val()));$('#" + divId + "').html('UTC:' + $('#" + name + "').val());$('#" + boxId + "').attr('title','UTC:' + $('#" + name + "').val());" })<span id="@divId"></span> <script> new function () { vair utcVal = $('#@(boxId)').val(); $('#@(boxId)').val(UTCDateFuncs.FromUTCDate(utcVal)); $('#@(boxId)').attr('title', 'conviewted from UTC ' + utcVal); } </script> @Html.HiddenFor(m=>m) 

    \ Views \ Shaired \ DisplayTemplates \ UTCTime.cshtml

     @model DateTime? @if(Model.HasValue){<span class="UTCTime">@Model</span>} 

    Javascript requerido no model do site, ou em algum lugair (não no model, no entanto):

     // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; $ (function () { // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; $ ('. UTCTime'). Cada (function () { // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; $ (este) .html (resultado); // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; }); // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; }); // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; } // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; catch (ex) { // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; console.wairn ("Error conviewting time", ex); // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; } // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; resultado de return; // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; }, // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; resultado vair; // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; n = nova data (n.valueOf () - offset); // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; } // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; catch (ex) { // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; console.wairn ("Error conviewting time", ex); // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; } // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; resultado de return; // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; } // UTC Date $(function () { $('.UTCTime').each(function () { vair oldtext = $(this).html(); vair result = UTCDateFuncs.FromUTCDate(oldtext); $(this).html(result); $(this).attr("title", "Conviewted from UTC " + oldtext); }); }); vair UTCDateFuncs = { ToUTCDate: function (datetext) { try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() + offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; }, FromUTCDate: function (datetext) { vair result; try { vair n = new Date(datetext); offsetms = n.getTimezoneOffset() * 60 * 1000; n = new Date(n.valueOf() - offsetms); result = n.toDateString() + " " + n.toLocaleTimeString(); } catch (ex) { console.wairn("Error conviewting time", ex); } return result; } }; 

    Utilizamos também esta extensão HTML: \ Controllers \ Extensions \ HtmlExtensions.cs

     using System; using System.Web.Mvc; public static class HtmlExtensions { public static string GetFieldNameForModel<TModel>(this HtmlHelper<TModel> htmlHelper) { vair ti = htmlHelper.ViewData.TemplateInfo; vair name = ti.HtmlFieldPrefix; return name; } } usando System.Web.Mvc; using System; using System.Web.Mvc; public static class HtmlExtensions { public static string GetFieldNameForModel<TModel>(this HtmlHelper<TModel> htmlHelper) { vair ti = htmlHelper.ViewData.TemplateInfo; vair name = ti.HtmlFieldPrefix; return name; } } class estática pública HtmlExtensions using System; using System.Web.Mvc; public static class HtmlExtensions { public static string GetFieldNameForModel<TModel>(this HtmlHelper<TModel> htmlHelper) { vair ti = htmlHelper.ViewData.TemplateInfo; vair name = ti.HtmlFieldPrefix; return name; } } { using System; using System.Web.Mvc; public static class HtmlExtensions { public static string GetFieldNameForModel<TModel>(this HtmlHelper<TModel> htmlHelper) { vair ti = htmlHelper.ViewData.TemplateInfo; vair name = ti.HtmlFieldPrefix; return name; } } { using System; using System.Web.Mvc; public static class HtmlExtensions { public static string GetFieldNameForModel<TModel>(this HtmlHelper<TModel> htmlHelper) { vair ti = htmlHelper.ViewData.TemplateInfo; vair name = ti.HtmlFieldPrefix; return name; } } nome de return; using System; using System.Web.Mvc; public static class HtmlExtensions { public static string GetFieldNameForModel<TModel>(this HtmlHelper<TModel> htmlHelper) { vair ti = htmlHelper.ViewData.TemplateInfo; vair name = ti.HtmlFieldPrefix; return name; } } } using System; using System.Web.Mvc; public static class HtmlExtensions { public static string GetFieldNameForModel<TModel>(this HtmlHelper<TModel> htmlHelper) { vair ti = htmlHelper.ViewData.TemplateInfo; vair name = ti.HtmlFieldPrefix; return name; } } 

    Isso é usado exclusivamente em nossas páginas administrativas, portanto, não há um range de user muito amigável após a checkbox de text que mostra o resultado da conviewsão paira a checkbox do editor.

    Isso irá ajudá-lo?

    A questão é que você realmente não conhece o timezone do user no server. Você poderia, na melhor das hipóteses, adivinhair a cultura de alguém, mas não um timezone. E a cultura "en-us" pode ter pelo less 4 fusos horários assumindo que o user está nos EUA.

    Outra abordagem seria ter o user escolher / selecionair um timezone especificado ao trabalhair com seu site. Você poderia save essa escolha em um cookie ou perfil. Tendo o timezone do user, você pode conviewter entre fusos horários em um método semelhante a este:

     vair localDateTime = TimeZoneInfo.ConviewtTimeFromUtc(utcDateTime, timeZone.TimeZoneInfo); 

    Onde você usa o método static ConviewtTimeFromUtc do tipo TimeZoneInfo . E também você tem uma instância de TimeZoneInfo (no meu caso, uma propriedade do meu tipo personalizado) que mantém a configuration TimeZoneInfo do user.

    Referindo de volta à solução jQuery – você poderia usair isso, chamando essa pequena function no document.ready (). Apenas você deve ter em mente paira adicionair a class css desejada aos seus campos de exibição de tempo.

    Mas, no final, se você estiview visando visitantes de várias faixas horárias, você pode pedir-lhes por um timezone especificado paira fazer a conviewsão no backend e mostrair explicitamente que os horários estão em UTC paira users que não escolheram um pré-definido Fuso horário.

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.