bootstrap-datepicker: 如何使用特定时区?
bootstrap-datepicker: How to use specific time zone?
我使用 bootstrap-datepicker 创建了一个 select 日期的小程序,并将其写入 MySQL。
要注意的是这个日期必须是 Europe/Berlin
的本地日期,无论用户现在身在何处。
$(....).datepicker({ startDate: 'today' });
我的问题是:如何在不使用服务器端代码 (PHP) 或任何其他库 的情况下将 startDate
设置为特定时区的本地 ?
我尝试使用 moment
+ moment-timezone
但它也显示本地浏览器日期。
var todaysDate = moment().tz('Europe/Berlin').format();
$(...).datepicker({ startDate: todaysDate });
谢谢。
日期对象将始终处于本地时区(基于浏览器)。
dateObj.getTime()
会给你绝对毫秒数。
http://momentjs.com/ 是很棒的时区转换库。
编辑
关于如何:
var newYork = moment.tz("2014-06-01 12:00", "America/New_York");
var losAngeles = newYork.clone().tz("America/Los_Angeles");
var london = newYork.clone().tz("Europe/London");
newYork.format(); // 2014-06-01T12:00:00-04:00
losAngeles.format(); // 2014-06-01T09:00:00-07:00
london.format(); // 2014-06-01T17:00:00+01:00
和
By default, moment parses and displays in local time.
这是他们网站上的确切代码。如果你不传递 America/New_York
而只是简单地 moment("2014-06-01 12:00")
它将获得当地时间。
如果您想知道哪个时区时刻解释,moment().utcOffset()
函数将为您提供 utcOffset。
请参阅 jsFiddle
中的演示
也许 this 之类的内容可以帮助您找到正确的方向?
HTML
<div class='input-group date date-time-picker'>
<input type='text' class="form-control" placeholder="Start Time"/>
<span class="input-group-addon">
<i class="glyphicon glyphicon-calendar"></i>
</span>
</div>
JavaScript
var options = {
format: 'mm/dd/yyyy hh:ii',
autoclose: true
};
$('.date-time-picker').datetimepicker(options).on("changeDate", function (e) {
var TimeZoned = new Date(e.date.setTime(e.date.getTime() +
(e.date.getTimezoneOffset() * 60000)));
$(this).datetimepicker('setDate', TimeZoned);
});
刚需
moment.tz.setDefault("Europe/Berlin");
之后没有使用 tz()
就生成了正确的日期。还要确保格式匹配。
var todaysDate = moment().format('D MMM YYYY');
$(...).datepicker({ format: 'dd M yyyy', startDate: todaysDate });
我使用 bootstrap-datepicker 创建了一个 select 日期的小程序,并将其写入 MySQL。
要注意的是这个日期必须是 Europe/Berlin
的本地日期,无论用户现在身在何处。
$(....).datepicker({ startDate: 'today' });
我的问题是:如何在不使用服务器端代码 (PHP) 或任何其他库 的情况下将 startDate
设置为特定时区的本地 ?
我尝试使用 moment
+ moment-timezone
但它也显示本地浏览器日期。
var todaysDate = moment().tz('Europe/Berlin').format();
$(...).datepicker({ startDate: todaysDate });
谢谢。
日期对象将始终处于本地时区(基于浏览器)。
dateObj.getTime()
会给你绝对毫秒数。
http://momentjs.com/ 是很棒的时区转换库。
编辑
关于如何:
var newYork = moment.tz("2014-06-01 12:00", "America/New_York");
var losAngeles = newYork.clone().tz("America/Los_Angeles");
var london = newYork.clone().tz("Europe/London");
newYork.format(); // 2014-06-01T12:00:00-04:00
losAngeles.format(); // 2014-06-01T09:00:00-07:00
london.format(); // 2014-06-01T17:00:00+01:00
和
By default, moment parses and displays in local time.
这是他们网站上的确切代码。如果你不传递 America/New_York
而只是简单地 moment("2014-06-01 12:00")
它将获得当地时间。
moment().utcOffset()
函数将为您提供 utcOffset。
请参阅 jsFiddle
中的演示也许 this 之类的内容可以帮助您找到正确的方向?
HTML
<div class='input-group date date-time-picker'>
<input type='text' class="form-control" placeholder="Start Time"/>
<span class="input-group-addon">
<i class="glyphicon glyphicon-calendar"></i>
</span>
</div>
JavaScript
var options = {
format: 'mm/dd/yyyy hh:ii',
autoclose: true
};
$('.date-time-picker').datetimepicker(options).on("changeDate", function (e) {
var TimeZoned = new Date(e.date.setTime(e.date.getTime() +
(e.date.getTimezoneOffset() * 60000)));
$(this).datetimepicker('setDate', TimeZoned);
});
刚需
moment.tz.setDefault("Europe/Berlin");
之后没有使用 tz()
就生成了正确的日期。还要确保格式匹配。
var todaysDate = moment().format('D MMM YYYY');
$(...).datepicker({ format: 'dd M yyyy', startDate: todaysDate });