当locale设置为另一种语言时,如何从momentjs对象获取英语值?

时间:2016-03-18 20:38:25

标签: javascript momentjs bootstrap-datetimepicker

首先,我使用在Momentjs上运行的bootstrap datetimepicker(http://eonasdan.github.io/bootstrap-datetimepicker/)。

我的应用程序是多语言的,包括日语,中文和阿拉伯语等亚洲语言。当语言环境设置为其他语言时,有时值的格式(例如am / pm)将包含亚洲字符。当我想将值保存到我的数据库中并稍后调用它时,这会导致问题。

我的代码如下所示:

$('#bookingTime').datetimepicker({
    "format": 'YYYY-MM-DD hh:mm A', 
    locale: " << The locale I'm setting >> ",
    stepping: 30,
    minDate: moment().millisecond(0).second(0).minute(0).hour(0),
    maxDate: new Date(new Date().setYear(new Date().getFullYear() + 1)),
  });
});

目前我使用&#39; _d&#39;从对象获取数据。关于时刻对象的价值:

$('#bookingTime').data("DateTimePicker").date()._d.toString();

但我认为必须有一个更好,更少&#39;油腻&#39;办法。 当语言环境设置为另一种语言时,如何从一个时刻对象获得英语值?

1 个答案:

答案 0 :(得分:3)

我想你只想打电话:

$('#bookingTime').data("DateTimePicker").date().format()

这将为您提供格式为ISO8601的日期:

2016-03-18T15:55:48-05:00

这可能是存储未来使用日期的最佳方式,因为它可以被任何文化解释。

您还可以使用即时格式标记来获取各种其他格式。

如果您真的想要英文,可以更改区域设置。我可能会先复制它以避免在初始日期出现意外的副作用:

var a  = $('#bookingTime').data("DateTimePicker").date().clone();
a.locale('en');
a.format('YYYY-MM-DD hh:mm A');//the date with english AM/PM