我一直在试图找出 moment-timezone.js 的问题。我似乎无法将时间戳从 UTC 转换为 PST
我使用的辅助函数是 timeInTimeZone。请原谅可怕的变量名。
非常感谢任何帮助调试问题
Template.home.helpers({
timezone: function() {
return Template.instance().timezone.get();
},
timeInTimeZone : function(){
let time = moment( this.createdAt ),
format = 'dddd, MMMM Do YYYY h:mm a';
var timezone = Template.instance().timezone.get();
console.log(time.format( format )); //works
console.log(timezone); //works
var editedTime = time.tz( timezone ).format( format ); //breaks
console.log(editedTime);
return editedTime;
}
});
我在使用时得到的日志如下:
2018 年 2 月 17 日星期六上午 1:11 home.js:141:5 America/Vancouver home.js:142:5 模板助手中的异常:timeInTimeZone@ http://localhost:3000/app/client/views/pages/home ?的.js散列= f7d8b7711106080a4d6fbb1d2089cf344f59223d:143:22 bindDataContext / <@ HTTP://本地主机:3000 /包/ blaze.js散列= a1ff2d6d5ecd59ee11e2ba260b8650a9d1140f59:3051:14个Blaze._wrapCatchingExceptions / <@ HTTP://本地主机:3000 /包/blaze.js?hash=a1ff2d6d5ecd59ee11e2ba260b8650a9d1140f59:1715:14 wrapHelper / HTTP://本地主机:3000 /包/ blaze.js哈希= a1ff2d6d5ecd59ee11e2ba260b8650a9d1140f59:3103:14 Template._withTemplateInstanceFunc @ HTTP://本地主机:3000 /包/火焰.js?hash=a1ff2d6d5ecd59ee11e2ba260b8650a9d1140f59:3744:12 wrapHelper/<@HTTP://本地主机:3000 /包/ blaze.js散列= a1ff2d6d5ecd59ee11e2ba260b8650a9d1140f59:3102:12 Spacebars.call @ HTTP://本地主机:3000 /包/ spacebars.js散列= 547cf8e466d1d52603d19bd5f48fb5df184fd237:172:12个Spacebars.mustacheImpl @ HTTP://本地主机:3000 /包/ spacebars.js散列= 547cf8e466d1d52603d19bd5f48fb5df184fd237:106:10 Spacebars.mustache @ HTTP://本地主机:3000 /包/ spacebars.js散列= 547cf8e466d1d52603d19bd5f48fb5df184fd237:110:16 Template.homehttp: //localhost:3000/app/client/views/pages/template.home.js?hash=be956f7036145947c4a904d9c42627576e740dd1:82:14 doRender@ http://localhost:3000/packages/blaze.js?hash=a510d8040500000000000viewAutorun / HTTP://本地主机:3000 /包/ blaze.js散列= a1ff2d6d5ecd59ee11e2ba260b8650a9d1140f59:1934:18 Template._withTemplateInstanceFunc @ HTTP://本地主机:3000 /包/ blaze.js散列= a1ff2d6d5ecd59ee11e2ba260b8650a9d1140f59:3744:12 viewAutorun / <@ HTTP://本地主机:3000 /包/ blaze.js散列= a1ff2d6d5ecd59ee11e2ba260b8650a9d1140f59:1932:14 Blaze._withCurrentView @ HTTP://本地主机:3000 /包/ blaze.js散列= a1ff2d6d5ecd59ee11e2ba260b8650a9d1140f59:2271:12 viewAutorun @ HTTP://本地主机:3000 /包/ blaze.js散列= a1ff2d6d5ecd59ee11e2ba260b8650a9d1140f59:1931:12 Tracker.Computation.prototype._compute @ HTTP://本地主机:3000 /包/ tracker.js散列= 0e8b5c18d543a28ce43b2f183c26b49ee62196af:339:5Tracker.Computation.prototype._recompute@ http://localhost:3000/packages/tracker.js?hash=0e8b5c18d543a28ce43b2f183c26b49ee62196af:358:9 Tracker._runFlush@ http://localhost:3000/packages/tracker.js?hash=0e8b5c18d543a28ce43b2f183c26b49ee62196af :9 :532:9 onGlobalMessage@ http://localhost:3000/packages/meteor.js?hash=b0f12795c8cc1423b5850502871996903f947ed5:448:11
我尝试使用meteor npm
和重新安装 moment 和 momnet-timezonemeteor add
我知道这与 time.tz() 有关,传递给它的是以下内容 America/Vancouver
虽然我找不到 .tz() 函数的正确解决方案,但我暂时正在浏览文档
我最终使用了这段代码
timeInTimeZone : function(){
var date = moment.utc(this.createdAt); //take the date in UTC format
return date.local().format("ddd, MMM D YYYY h:mma"); //Return the date in user's local time
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句