Javascript 如何将Twitter API发布时间/日期转换为有效的ISO格式?
我正在构建一个twitter界面,我想像twitter一样显示时代 我执行GET请求并抓取tweet,然后将其传递到Javascript 如何将Twitter API发布时间/日期转换为有效的ISO格式?,javascript,node.js,twitter,momentjs,Javascript,Node.js,Twitter,Momentjs,我正在构建一个twitter界面,我想像twitter一样显示时代 我执行GET请求并抓取tweet,然后将其传递到moment.js,以便转换它 以下是此示例的代码片段: client.get('direct_messages', {screen_name: 'theclearytheory', count: '3'}, function(error, messages, response){ if(!error){ var privateMessageTime = [
moment.js
,以便转换它
以下是此示例的代码片段:
client.get('direct_messages', {screen_name: 'theclearytheory', count: '3'}, function(error, messages, response){
if(!error){
var privateMessageTime = [];
for(var i=0; i < messages.length; i++){
console.log(messages[i].created_at);
privateMessageTime.push(moment(messages[i].created_at).fromNow());
}
} else {
console.log(error)
}
client.get('direct_messages',{screen_name:'theclearytheory',count:'3',函数(错误,消息,响应){
如果(!错误){
var privateMessageTime=[];
对于(var i=0;i
现在,这确实很好。如果我回到太阳2016年10月2日11:59:43+0000
,那么程序会正确地将其转换为:2个月前
问题是我在控制台中收到以下警告消息:
弃用警告:提供的值不是可识别的ISO格式。即时构造使用js Date(),这在所有浏览器和版本中都不可靠。不鼓励使用非ISO Date格式,并将在即将发布的主要版本中删除。有关详细信息,请参阅。
论据:
[0]\u IsamentintObject:true、\u isUTC:false、\u useUTC:false、\u l:undefined、\u i:Fri Jul 22 10:19:18+0000 2016、\u f:undefined、\u strict:undefined、\u locale:[对象对象]
我已经浏览了它链接到的文档,但我就是不知道如何使用它。如果有人对此有任何经验(或者比我聪明得多),我非常感谢您的帮助!我会参考文档中关于严格模式的部分。 您可以使用代码,然后将所需格式添加为第二个参数的字符串,将true添加为第三个参数和chain。format()请参见以下内容:
client.get('direct_messages', {screen_name: 'theclearytheory', count: '3'}, function(error, messages, response){
if(!error){
var privateMessageTime = [];
for(var i=0; i < messages.length; i++){
console.log(messages[i].created_at);
privateMessageTime.push(moment(messages[i].created_at, 'MM/DD/YYYY', true).format().fromNow());
}
} else {
console.log(error)
}
client.get('direct_messages',{screen_name:'theclearytheory',count:'3',函数(错误,消息,响应){
如果(!错误){
var privateMessageTime=[];
对于(var i=0;i
我将参考文档中关于严格模式的部分。
您可以使用代码,然后将所需格式添加为第二个参数的字符串,将true添加为第三个参数和chain。format()请参见以下内容:
client.get('direct_messages', {screen_name: 'theclearytheory', count: '3'}, function(error, messages, response){
if(!error){
var privateMessageTime = [];
for(var i=0; i < messages.length; i++){
console.log(messages[i].created_at);
privateMessageTime.push(moment(messages[i].created_at, 'MM/DD/YYYY', true).format().fromNow());
}
} else {
console.log(error)
}
client.get('direct_messages',{screen_name:'theclearytheory',count:'3',函数(错误,消息,响应){
如果(!错误){
var privateMessageTime=[];
对于(var i=0;i
如解析文档中所述:
警告:浏览器支持解析字符串。由于没有支持哪些格式的规范,在某些浏览器中有效的格式在其他浏览器中不起作用
对于解析ISO 8601字符串以外的任何内容的一致结果,应使用
由于您将获得2016年10月2日11:59:43+0000的Sun
,您将获得:
moment(messages[i].created_at, 'ddd MMM DD HH:mm:ss Z YYYY').fromNow()
而不是解析文档中所述的
时刻(消息[i]。在.fromNow()处创建):
警告:浏览器支持解析字符串。由于没有支持哪些格式的规范,在某些浏览器中有效的格式在其他浏览器中不起作用
对于解析ISO 8601字符串以外的任何内容的一致结果,应使用
由于您将获得2016年10月2日11:59:43+0000的Sun
,您将获得:
moment(messages[i].created_at, 'ddd MMM DD HH:mm:ss Z YYYY').fromNow()
而不是moment(messages[i]。created_at).fromNow()
我得到了这个家伙:dateTweeted.push(moment(tweets[i]。created_at'MM/DD/yyyyy',true)。format().fromNow();^TypeError:moment(…).format(…).fromNow不是一个函数
anyidea@haasdev?我得到了这个家伙:dateTweeted.push(瞬间(tweets[I]。创建于'MM/DD/yyyyy',true)。format().fromNow();^TypeError:moment(…).format(…).fromNow不是一个函数
any idea@haasdev?啊,我明白了,所以这只是告诉moment
它使用的是什么?是的,准确地说,如果输入字符串与链接文档中的ISO 8601不匹配,你必须指定其格式。啊,我明白了,所以这只是告诉moment
它使用的是什么?是的,准确地说,你有如果输入字符串与链接文档中显示的ISO 8601不匹配,则指定输入字符串的格式。