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

标签 javascript momentjs bootstrap-datetimepicker

首先,我使用在 Momentjs 上运行的引导日期时间选择器 ( 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)),
  });
});

目前,我正在使用 moment 对象上的“_d”值从对象获取数据:

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

但我认为一定有一种更好、更少“油腻”的方法。 当语言环境设置为另一种语言时,如何才能从时刻对象中获取英语值?

最佳答案

我想你只是想打电话:

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

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

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

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

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

如果您确实想要英语版本,可以更改区域设置。我可能会先复制它,以避免该更改在初始日期产生意外的副作用:

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

关于javascript - 当语言环境设置为另一种语言时,如何从 momentjs 对象获取英语值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36093811/

相关文章:

javascript - rxjs 运行一些操作并返回不同的类型

javascript - 使用 moment.js 将总秒数转换为 ISO 8601 持续时间字符串

javascript - bootstrap-datepicker 全局设置语言

javascript - DateTimePicker 类预约系统

javascript - Bootstrap Timepicker - 分钟间隔

javascript - 如何使用消息正确抽象 console.log 颜色变量

javascript - 阻止前检查网址

javascript - 在 travis 上测试失败,但通过了本地测试

angular - 实现自定义 NgbDateParserFormatter 以更改 NgbInputDatepicker 上输入值的格式是否正确?

meteor - Momentjs 与 Meteor 似乎无法在服务器端工作