从moment.js对象中删除时区
Remove timezone from a moment.js object
我使用的是datetimepicker.js,它的date
函数返回一个moment.js对象。它使用了本地UTC偏移量,而我的原始日期有一个不同的偏移量。
我的原始日期:
2015-10-01T15:00:00.000Z
我在日期时间选择器(DD-MM HH:mm
)上显示的内容:
01-10 15:00
我得到的:
2015-10-01T15:40:00+01:00
我想要什么:
2015-10-01T15:40:00+00:00
请注意我是如何删除末尾的+01偏移的。
如何将其应用于任何本地UTC?也就是说,无需手动删除01(因为根据用户位置,它可以是任何其他本地偏移)。
var momentDate = timePicker.data("DateTimePicker").date();
console.log(momentDate.format());
//this prints 2015-10-01T15:40:00+01:00
您需要显式指定格式。
试试这个:
momentDate.format('YYYY-MM-DDTHH:mm:ss')
这将给出的结果
2015-10-01T15:40:00
听起来您正试图让用户选择一个基于UTC的日期和时间。因此,最好的方法是让拾取器在创建开始时刻时以UTC模式运行。我不熟悉这个特定的日期时间选择器,但假设它在内部的某个地方做了这样的事情:
var m = moment([year, month-1, day, hour, minute]);
然后应该这样做:
var m = moment.utc([year, month-1, day, hour, minute]);
(此处显示的变量来自拾取器控制。)
理想情况下,picker控件应该包括一个设置UTC模式的功能,以便在您要求时在内部执行此操作。
如果它没有这样的功能,你仍然可以补偿自己。不幸的是,您不能只调用.utc()
,因为这将给出与用户选择的时间不同的时间。因此,您必须通过将UTC时间偏移原始时刻的偏移量来进行补偿。
var m = // moment value from the picker
var result = moment(m).utc().add(m.utcOffset(), 'm');
然后,您可以调用format
或任何您想要的结果。请注意,原始时刻是用moment(m)
克隆的,这样偏移量就不会丢失,切换到UTC也不会干扰选择器的内部行为。
此外,请注意,像这样的移位通常是一种黑客行为,如果做得不对,可能会导致错误。这里没问题,因为当应用调整时,时刻已经处于UTC模式。但作为一个总体解决方案,应该避免转变。最好的选择是首先将控制置于UTC模式。
试试这个:
let str = '2015-10-01T15:40+01:00';
let moment = moment(str).utcOffset(str)
console.log(moment.format('DD/MM/YYYY HH:mm'))
<script src="https://momentjs.com/downloads/moment.js"></script>
这对我有效:
let date = "2017-02-01 15:20:00.00";
let pattern = "YYYY-MM-DD HH:mm:ss.SS"
let d = moment(date, pattern).utc(false);
它仍然会说它考虑了时区,但我发现它没有。
LOG: 'ParseDateStr::2017-2-1 15:20:00.0000000
ParsedDate::Wed Feb 01 2017 15:20:00 GMT+0100 (Central European Standard Time)'
通常,如果只有moment(date, pattern)
,它将解析为16:20:00
不是一个干净的解决方案,但您可以进行
momentDate.format('YYYY-MM-DDTHH:mm:ss') + '00:00';
这将删除时区,然后将"00:00"部分附加回。这是为了扩展Matt的答案。
这会给你
2015-10-01T15:40:00+00:00
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- 如何从rails中的代码中删除新行( )
- 删除对HTML元素的拖动
- toLocaleDateString和toLocaleString方法不尊重机器时区
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 按顺序添加和删除类
- iframe正在添加标签,需要删除它们
- 如何在HTML输入字段中添加不可删除的后缀
- addData()从最新图表中删除.js 2.1.3-怎么了
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 删除CKEditor工具栏按钮,但不删除功能
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 正在删除node.js中已验证的网站
- 完整日历日单击并删除了时区更改的事件日期问题
- 从moment.js对象中删除时区
- 从Google Sheets检索的日期中删除时间和时区
- 如何在 js 中删除时区缩写
- 在javascript中从日期中删除本地时区