如何使用jQuery,Javascript或两者中的任何一个插件将用户在其本地时区中指定的日期和时间调整为UTC或其他给定的时区?
我在html表单文本字段上使用bootstrap-datetimepicker插件。用户可以指定将来的日期和时间(以安排事件,即电话呼叫)。他们将在自己的时区中指定日期和时间,而不会被要求指定时区(这意味着他们将看到的只是一个日历和时钟,他们将在其中选择所需的日期和时间)。我需要能够将此时间(和日期(如果适用))调整为UTC或其他时区(具体是EST / EDT,具体取决于是否采用DST)。用户必须不知道正在进行此调整。因此,必须以某种方式检测其时区。当我使用bootstrap-datetimepicker时,moment.js插件可用。我可能会包括我认为合适的任何javascript / jQuery插件或库(页面加载时间不是我必须考虑的因素)。我当然可以在页面上添加一个隐藏字段,以便提交调整后的时间。
我不确定是否有帮助,但这是我的代码:
$(function() {
if (parseInt($(window).width()) < 768) {
$('#datetimepicker1').datetimepicker({
inline: true,
useCurrent: false,
daysOfWeekDisabled: [0, 6],
defaultDate: false,
showClear: true,
showTodayButton: true
});
} else {
$('#datetimepicker1').datetimepicker({
inline: true,
sideBySide: true,
useCurrent: false,
daysOfWeekDisabled: [0, 6],
defaultDate: false
});
}
});
<!-- BEGIN NEEDLESSLY LARGE NUMBER OF EXTERNAL LIBRARIES -->
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" type="text/css">
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.14.30/css/bootstrap-datetimepicker.min.css" rel="stylesheet">
<script src="//code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.14.30/js/bootstrap-datetimepicker.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/locales.min.js"></script>
<!-- END NEEDLESSLY LARGE NUMBER OF EXTERNAL LIBRARIES -->
<!-- BEGIN LIKELY IRRELEVANT CODE -->
<form action="some.php" method="post" enctype="multipart/form-data" class="grid-form">
<label>Optimal Date and Time (optional)</label>
<input class="hidden" type="text" name="time" id="datetimepicker1">
<div class="datetimeplaceholder"></div>
<br>
<br>
<button type="submit" class="btn btn-primary">Send Message</button>
</form>
<!-- END LIKELY IRRELEVANT CODE -->
如果SO的代码段很笨拙,也可以在Codepen上找到它:codepen.io/anon/pen/gpBgBz
我为您的冗长而道歉。我已经看过并看到了类似的条目。这几乎可以肯定是重复的;但是,我并没有真正理解所提供的答案。总的来说,我对jQuery或JS不太满意。尽管如此,我确实意识到这是解决此问题的一种糟糕方法。任意要求使这一过程变得非常复杂。
选择器将输出moment.js时刻。我想出了从那一刻起如何找到UTC时间和日期的方法。
$("form").submit(function() {
var datetime1 = $('#datetimepicker1').data("DateTimePicker").date();
var correctdatetime = datetime1.utc();
$('#datetimepicker1').val(correctdatetime);
}
这完成了我想要的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句