【问题标题】:Unable to understand this code [JavaScript , Dates and Obtaining TimeZones]无法理解此代码 [JavaScript、日期和获取时区]
【发布时间】:2017-03-29 13:12:08
【问题描述】:

请帮助我理解这段代码:-

function seconds_with_leading_zeros(dt)   
{   
  return /\((.*)\)/.exec(new Date().toString())[1];  
}  

dt = new Date();   
console.log(seconds_with_leading_zeros(dt));   

dt = new Date(1989, 10, 1);   
console.log(seconds_with_leading_zeros(dt)); 

假设显示用户的时区。

【问题讨论】:

  • 它返回里面的所有字符,包括第一个 () 对,这将是时区。虽然我不知道为什么它被传递了一个日期对象,因为它没有被使用。
  • 很奇怪。你的函数有一个 'dt' 参数,但它没有被使用
  • @Mtihc 我没有创建这个东西我在 W3resources 中找到了这个东西,这就是我对这个东西很困惑的原因之一,而且我不明白他们的返回语句代码
  • 在大多数情况下,括号中的值是人类可读的、特定于语言的、依赖于实现的字符串。它没有以任何方式标准化。你想用这个输出来完成什么?
  • @MattJohnson 我正在从 W3Resoures 练习我的 JavaScript,他们要求我们显示用户的时区,因为我不知道答案我检查了他们给定的答案,但我无法理解这段代码.这是该问题的链接,如果您想查看w3resource.com/javascript-exercises/…

标签: javascript date timezone


【解决方案1】:

new Date().toString() 返回类似"Wed Mar 29 2017 15:37:26 GMT+0200 (West-Europa (zomertijd))" 的字符串。时区位于圆括号 () 内。

return /\((.*)\)/.exec("date and time (timezone)")[1]; 返回括号内的内容。在这种情况下,它将返回单词"timezone"

这是我能解释的最好的:)

【讨论】:

  • 你能解释一下这部分吗? ******************return /((.*))/.exec************ 以及为什么他们访问其索引 1 项???
  • 这是一个/regular expression/。这个正则表达式(.*) 将匹配任何内容。这个正则表达式\((.*)\) 将匹配圆括号内的任何内容。 exec 将使用正则表达式评估给定的字符串。它会返回一个数组。数组的第一个元素(索引 0 处)是整个元素。数组的第二个元素(索引 1 处)是第一个匹配项。您想要第一场比赛,因为那是圆括号内的内容。
猜你喜欢
  • 1970-01-01
  • 2017-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-16
  • 1970-01-01
  • 2020-10-23
相关资源
最近更新 更多