语法高亮,滚动条美化,设置页面调整

This commit is contained in:
fofolee
2019-04-19 02:41:09 +08:00
parent 1e8f76c000
commit 359d29ee0b
1590 changed files with 12328 additions and 11441 deletions

View File

@@ -6,10 +6,10 @@
<p class="hidden">The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone <a class="external" href="https://github.com/mdn/interactive-examples" rel="noopener">https://github.com/mdn/interactive-examples</a> and send us a pull request.</p>
<h2 id="Syntax" name="Syntax">语法</h2>
<p>显式调用:</p>
<pre class="syntaxbox"><code>Date.parse(dateString)</code></pre>
<pre><code class="language-javascript"><code>Date.parse(dateString)</code></code></pre>
<p><code>隐式调用:</code></p>
<pre class="syntaxbox"><code>new Date(<var>dateString</var>)</code>
</pre>
<pre><code class="language-javascript"><code>new Date(<var>dateString</var>)</code>
</code></pre>
<h3 id="Parameters" name="Parameters">参数</h3>
<dl>
<dt><code>dateString</code></dt>
@@ -33,42 +33,42 @@
<h3 id="引擎相关的日期格式">引擎相关的日期格式</h3>
<p>ECMAScript  规范规定:如果一个字符串不符合标准格式,则函数可以使用任何由引擎决定的策略或解析算法。 <code>Date.parse()</code>  对于因包含有无效元素而无法识别的 ISO 格式字符串或者日期应该返回 <a href="Reference/Global_Objects/NaN" title="全局属性 NaN 的值表示不是一个数字Not-A-Number。"><code>NaN</code></a></p>
<p>但是, 在如 ECMA-262 规范中定义的情况,如果因为无效值而导致日期字符串不能被识别为 ISO 格式时,根据浏览器和给定的值不同,返回值可以是,也可以不是 <a href="Reference/Global_Objects/NaN" title="全局属性 NaN 的值表示不是一个数字Not-A-Number。"><code>NaN</code></a> 。比如:</p>
<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="comment token">// 包含无效值的非 ISO 格式字符串</span>
<span class="keyword token">new</span> <span class="class-name token">Date</span><span class="punctuation token">(</span><span class="string token">'23/25/2014'</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
<pre><code class="language-javascript"><code class="language-js"><span class="comment token">// 包含无效值的非 ISO 格式字符串</span>
<span class="keyword token">new</span> <span class="class-name token">Date</span><span class="punctuation token">(</span><span class="string token">'23/25/2014'</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></code></pre>
<p>在 Firefox 30 中会被识别为本地时区的2015年12月25日而在 Safari 7 中则是无效日期。但是如果字符串被识别为 ISO 格式并且包含无效值,则在所有遵循 ES5 或者更新标准的浏览器中都会返回 <a href="Reference/Global_Objects/NaN" title="全局属性 NaN 的值表示不是一个数字Not-A-Number。"><code>NaN</code></a></p>
<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="comment token">// 包含无效值的 ISO 格式字符串</span>
<pre><code class="language-javascript"><code class="language-js"><span class="comment token">// 包含无效值的 ISO 格式字符串</span>
<span class="keyword token">new</span> <span class="class-name token">Date</span><span class="punctuation token">(</span><span class="string token">'2014-25-23'</span><span class="punctuation token">)</span><span class="punctuation token">.</span><span class="function token">toISOString</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
<span class="comment token">// 在所有遵循 ES5的浏览器中返回 "RangeError: invalid date"</span></code></pre>
<span class="comment token">// 在所有遵循 ES5的浏览器中返回 "RangeError: invalid date"</span></code></code></pre>
<p>SpiderMonkey 的引擎策略可以在 <a class="external" href="http://mxr.mozilla.org/mozilla-central/source/js/src/jsdate.cpp?rev=64553c483cd1#889" rel="noopener"><code>jsdate.cpp</code></a>  中找到。字符串 <code>"10 06 2014"</code>  可以作为非 ISO 格式字符串使用自定义处理方式的例子。参见这篇关于解析如何进行的<a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023155#c6" rel="noopener">粗略纲要</a></p>
<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">new</span> <span class="class-name token">Date</span><span class="punctuation token">(</span><span class="string token">'10 06 2014'</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
<pre><code class="language-javascript"><code class="language-js"><span class="keyword token">new</span> <span class="class-name token">Date</span><span class="punctuation token">(</span><span class="string token">'10 06 2014'</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></code></pre>
<p>将会被解析为本地时间 2014年10月6日而不是6月10日。另一个例子</p>
<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">new</span> <span class="class-name token">Date</span><span class="punctuation token">(</span><span class="string token">'foo-bar 2014'</span><span class="punctuation token">)</span><span class="punctuation token">.</span><span class="function token">toString</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
<pre><code class="language-javascript"><code class="language-js"><span class="keyword token">new</span> <span class="class-name token">Date</span><span class="punctuation token">(</span><span class="string token">'foo-bar 2014'</span><span class="punctuation token">)</span><span class="punctuation token">.</span><span class="function token">toString</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
<span class="comment token">// 返回: "Invalid Date"</span>
Date<span class="punctuation token">.</span><span class="function token">parse</span><span class="punctuation token">(</span><span class="string token">'foo-bar 2014'</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
<span class="comment token">// 返回: NaN</span></code></pre>
<span class="comment token">// 返回: NaN</span></code></code></pre>
<h2 id="Examples" name="Examples">例子</h2>
<h3 id="Example:_Using_parse" name="Example:_Using_parse">例子:使用 <code>Date.parse()</code></h3>
<p>如果 <code>IPOdate</code> 是一个已经存在的 <a href="Reference/Date" title="此页面仍未被本地化, 期待您的翻译!"><code>Date</code></a> 对象,则可以把其设置为本地时间 1995年8月9日。如下</p>
<pre class="brush: js line-numbers language-js"><code class="language-js">IPOdate<span class="punctuation token">.</span><span class="function token">setTime</span><span class="punctuation token">(</span>Date<span class="punctuation token">.</span><span class="function token">parse</span><span class="punctuation token">(</span><span class="string token">'Aug 9, 1995'</span><span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
<pre><code class="language-javascript"><code class="language-js">IPOdate<span class="punctuation token">.</span><span class="function token">setTime</span><span class="punctuation token">(</span>Date<span class="punctuation token">.</span><span class="function token">parse</span><span class="punctuation token">(</span><span class="string token">'Aug 9, 1995'</span><span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></code></pre>
<p>其他一些解析非标准格式日期的例子:</p>
<pre class="brush: js">Date.parse("Aug 9, 1995");
</pre>
<pre><code class="language-javascript">Date.parse("Aug 9, 1995");
</code></pre>
<p>在时区 GMT-0300 中返回 807937200000 ,在其他时区中返回另外的值,因为未指定时区并且不是 ISO 格式,所以默认使用本地时区。</p>
<pre class="brush: js">Date.parse("Wed, 09 Aug 1995 00:00:00 GMT");
</pre>
<pre><code class="language-javascript">Date.parse("Wed, 09 Aug 1995 00:00:00 GMT");
</code></pre>
<p>因为指定了时区 GMT (UTC),所以不管本地时区如何,总是返回 <code>807926400000</code></p>
<pre class="brush: js">Date.parse("Wed, 09 Aug 1995 00:00:00");
</pre>
<pre><code class="language-javascript">Date.parse("Wed, 09 Aug 1995 00:00:00");
</code></pre>
<p>在时区 GMT-0300 中返回 807937200000 ,在其他时区中返回另外的值,因为没有时区标志并且不是 ISO 格式,所以作为本地时区处理。</p>
<pre class="brush: js">Date.parse("Thu, 01 Jan 1970 00:00:00 GMT");
</pre>
<pre><code class="language-javascript">Date.parse("Thu, 01 Jan 1970 00:00:00 GMT");
</code></pre>
<p>因为指定了时区 GMT (UTC),所以不管本地时区如何,总是返回<code> 0</code></p>
<pre class="brush: js">Date.parse("Thu, 01 Jan 1970 00:00:00");
</pre>
<pre><code class="language-javascript">Date.parse("Thu, 01 Jan 1970 00:00:00");
</code></pre>
<p>在时区 GMT-0400 中返回 <code>14400000</code>,在其他时区中返回另外的值,因为未指定时区并且不是 ISO 格式,所以使用本地时区处理。</p>
<pre class="brush: js">Date.parse("Thu, 01 Jan 1970 00:00:00 GMT-0400");
</pre>
<pre><code class="language-javascript">Date.parse("Thu, 01 Jan 1970 00:00:00 GMT-0400");
</code></pre>
<p>因为指定了时区 GMT (UTC),所以不管本地时区如何,总是返回<code> </code><code>14400000</code></p>
<h2 id="规范">规范</h2>
<table class="standard-table">