UNPKG

cejs

Version:

A JavaScript module framework that is simple to use.

298 lines 200 kB
<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style> .KEYW {color: #933;} .COMM {color: #bbb; font-style: italic;} .NUMB {color: #393;} .STRN {color: #393;} .REGX {color: #339;} .line {border-right: 1px dotted #666; color: #666; font-style: normal;} </style></head><body><pre><span class='line'> 1</span> <span class="TOKN"></span><span class="WHIT"> <span class='line'> 2</span> </span><span class="COMM">/** <span class='line'> 3</span> * @name CeL function for native objects <span class='line'> 4</span> * @fileoverview <span class='line'> 5</span> * 本檔案包含了 native objects 的 functions。 <span class='line'> 6</span> * @since <span class='line'> 7</span> */</span><span class="WHIT"> <span class='line'> 8</span> <span class='line'> 9</span> <span class='line'> 10</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">CeL</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> <span class='line'> 11</span> <span class='line'> 12</span> </span><span class="COMM">/** <span class='line'> 13</span> * 本 module 之 name(id),&lt;span style="text-decoration:line-through;">不設定時會從呼叫時之 path 取得&lt;/span>。 <span class='line'> 14</span> * @type String <span class='line'> 15</span> * @constant <span class='line'> 16</span> * @inner <span class='line'> 17</span> * @ignore <span class='line'> 18</span> */</span><span class="WHIT"> <span class='line'> 19</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">module_name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'native'</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'> 20</span> <span class='line'> 21</span> </span><span class="COMM">//===================================================</span><span class="WHIT"> <span class='line'> 22</span> </span><span class="COMM">/** <span class='line'> 23</span> * 若欲 include 整個 module 時,需囊括之 code。 <span class='line'> 24</span> * @type Function <span class='line'> 25</span> * @param {Function} library_namespace namespace of library <span class='line'> 26</span> * @param load_arguments 呼叫時之 argument(s) <span class='line'> 27</span> * @return <span class='line'> 28</span> * @name CeL.native <span class='line'> 29</span> * @constant <span class='line'> 30</span> * @inner <span class='line'> 31</span> * @ignore <span class='line'> 32</span> */</span><span class="WHIT"> <span class='line'> 33</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">code_for_including</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">library_namespace</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">load_arguments</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> <span class='line'> 34</span> <span class='line'> 35</span> </span><span class="COMM">// requires 必須放在 '_' 後!</span><span class="WHIT"> <span class='line'> 36</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">eval</span><span class="PUNC">(</span><span class="NAME">library_namespace.use_function</span><span class="PUNC">(</span><span class="WHIT"> <span class='line'> 37</span> </span><span class="WHIT"> </span><span class="STRN">'data.split_String_to_Object'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> <span class='line'> 38</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'> 39</span> <span class='line'> 40</span> <span class='line'> 41</span> </span><span class="COMM">/** <span class='line'> 42</span> * null module constructor <span class='line'> 43</span> * @class native objects 的 functions <span class='line'> 44</span> */</span><span class="WHIT"> <span class='line'> 45</span> </span><span class="NAME">CeL.native</span><span class="WHIT"> <span class='line'> 46</span> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> <span class='line'> 47</span> </span><span class="WHIT"> </span><span class="COMM">// null module constructor</span><span class="WHIT"> <span class='line'> 48</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'> 49</span> <span class='line'> 50</span> <span class='line'> 51</span> </span><span class="COMM">/** <span class='line'> 52</span> * for JSDT: 有 prototype 才會將之當作 Class <span class='line'> 53</span> */</span><span class="WHIT"> <span class='line'> 54</span> </span><span class="NAME">CeL.native</span><span class="WHIT"> <span class='line'> 55</span> </span><span class="PUNC">.</span><span class="NAME">prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> <span class='line'> 56</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'> 57</span> <span class='line'> 58</span> <span class='line'> 59</span> <span class='line'> 60</span> <span class='line'> 61</span> <span class='line'> 62</span> <span class='line'> 63</span> </span><span class="COMM">/* opposite of toUTCString() <span class='line'> 64</span> 尚不成熟!假如是type=='date',不如用new Date()! <span class='line'> 65</span> string大部分可用new Date(Date.parse(str))代替! <span class='line'> 66</span> http://www.comsharp.com/GetKnowledge/zh-CN/TeamBlogTimothyPage_K742.aspx <span class='line'> 67</span> <span class='line'> 68</span> var UTCDay,UTCMonth; <span class='line'> 69</span> setObjValue('UTCDay','Sun,Mon,Tue,Wed,Thu,Fri,Sat',1); <span class='line'> 70</span> setObjValue('UTCMonth','Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec',1); <span class='line'> 71</span> var fromUTCStringFormat=[[0,3,2,1,4],[0,5,1,2,3],[0,4,1,2,3]]; // 0:[Mon, 9 Aug 2004 12:05:00 GMT],1:[Thu Sep 30 18:12:08 UTC+0800 2004],2:[Sat Jun 26 18:19:46 2004] <span class='line'> 72</span> function fromUTCString(str,format){ <span class='line'> 73</span> var s=''+str,f; <span class='line'> 74</span> if(!s)return; <span class='line'> 75</span> if(typeof format=='undefined')if(f=Date.parse(s))return new Date(f);else return 'Unknown format!';//format=0; <span class='line'> 76</span> if(!isNaN(format)&&format&lt;fromUTCStringFormat.length)f=fromUTCStringFormat[format]; <span class='line'> 77</span> else return 'Yet support this kind of format['+format+']!\nWe support to '+fromUTCStringFormat.length+'.'; <span class='line'> 78</span> if(!f[0])f[0]=' '; <span class='line'> 79</span> s=s.replace(new RegExp(f[0]+'+','g'),f[0]).split(f[0]); <span class='line'> 80</span> if(s.length&lt;f.length)return 'The item length of data: '+s.length+' is less then format['+format+']: '+f.length+'!\n'+s.join(',');// new Date <span class='line'> 81</span> if(f.length==5)s[f[4]]=s[f[4]].split(':'); <span class='line'> 82</span> else if(f.length==7)s[f[4]]=[s[f[4]],s[f[5]],s[f[6]]]; <span class='line'> 83</span> else return 'Illegal date format!'; <span class='line'> 84</span> if(format==1&&s[4].match(/([+-]\d{2})/))s[f[4]][0]=parseInt(s[f[3]][0])+parseInt(RegExp.$1); <span class='line'> 85</span> alert(str+'\n'+s[f[1]]+','+s[f[2]]+'('+UTCMonth[s[f[2]]]+'),'+s[f[3]]+','+s[f[4]][0]+','+s[f[4]][1]+','+s[f[4]][2]); <span class='line'> 86</span> // check,可以包括星期 <span class='line'> 87</span> if( !(s[f[2]]=UTCMonth[s[f[2]]]) || !(s=new Date(s[f[1]],s[f[2]],s[f[3]],s[f[4]][0],s[f[4]][1],s[f[4]][2])) ) // Date.UTC() <span class='line'> 88</span> s='Input data error!'; <span class='line'> 89</span> return s; <span class='line'> 90</span> } <span class='line'> 91</span> */</span><span class="WHIT"> <span class='line'> 92</span> <span class='line'> 93</span> </span><span class="COMM">/* string &lt;-> date object, Date.parse() <span class='line'> 94</span> http://msdn2.microsoft.com/zh-tw/library/t5580e8h(VS.80).aspx <span class='line'> 95</span> <span class='line'> 96</span> <span class='line'> 97</span> /((\d{1,4})[\/.-])?([01]?\d)([\/.-]([0-3]?\d))?/ <span class='line'> 98</span> /([0-2]?\d):([0-5]?\d)(:([0-5]?\d))?\s*(([PA])M)?/ <span class='line'> 99</span> <span class='line'>100</span> <span class='line'>101</span> ( <span class='line'>102</span> <span class='line'>103</span> <span class='line'>104</span> ( <span class='line'>105</span> <span class='line'>106</span> <span class='line'>107</span> ( <span class='line'>108</span> ([12]\d{3}|1?\d{2}) <span class='line'>109</span> <span class='line'>110</span> [\/.-] <span class='line'>111</span> )? <span class='line'>112</span> <span class='line'>113</span> ([01]?\d) <span class='line'>114</span> <span class='line'>115</span> ([\/.-]([0-3]?\d)(\.\d+)?)? <span class='line'>116</span> <span class='line'>117</span> <span class='line'>118</span> | <span class='line'>119</span> <span class='line'>120</span> <span class='line'>121</span> ([0-2]?\d) <span class='line'>122</span> : <span class='line'>123</span> ([0-5]?\d) <span class='line'>124</span> <span class='line'>125</span> (:([0-5]?\d))? <span class='line'>126</span> <span class='line'>127</span> \s* <span class='line'>128</span> (([PA])M)? <span class='line'>129</span> <span class='line'>130</span> <span class='line'>131</span> ) <span class='line'>132</span> <span class='line'>133</span> <span class='line'>134</span> <span class='line'>135</span> \s* <span class='line'>136</span> ){1,2} <span class='line'>137</span> <span class='line'>138</span> <span class='line'>139</span> try: <span class='line'>140</span> '2003/1/4 12:53:5'.toDate(); <span class='line'>141</span> String_to_Date.m.join('&lt;br/>'); <span class='line'>142</span> $2:year <span class='line'>143</span> $3:month <span class='line'>144</span> $5:mday <span class='line'>145</span> <span class='line'>146</span> <span class='line'>147</span> */</span><span class="WHIT"> <span class='line'>148</span> </span><span class="NAME">String_to_Date.pd</span><span class="PUNC">=</span><span class="REGX">/(([12]\d{3}|1\d{2}|[2-9]\d)[\/.\-–年])?([01]?\d)([\/.\-–月]([0-3]?\d)日?)?/</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// pattern of date</span><span class="WHIT"> <span class='line'>149</span> </span><span class="NAME">String_to_Date.pt</span><span class="PUNC">=</span><span class="REGX">/([0-2]?\d)[:時]([0-5]?\d)([:分]([0-5]?\d)(\.\d+)?)?\s*(([PA])M)?/i</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// pattern of time</span><span class="WHIT"> <span class='line'>150</span> </span><span class="NAME">String_to_Date.r1</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="NAME">String_to_Date.pd.source</span><span class="PUNC">+</span><span class="STRN">'(\\s+'</span><span class="PUNC">+</span><span class="NAME">String_to_Date.pt.source</span><span class="PUNC">+</span><span class="STRN">')?'</span><span class="PUNC">,</span><span class="STRN">'i'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// date [time]</span><span class="WHIT"> <span class='line'>151</span> </span><span class="NAME">String_to_Date.r2</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="NAME">String_to_Date.pt.source</span><span class="PUNC">+</span><span class="STRN">'(\\s+'</span><span class="PUNC">+</span><span class="NAME">String_to_Date.pd.source</span><span class="PUNC">+</span><span class="STRN">')?'</span><span class="PUNC">,</span><span class="STRN">'i'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// time [date]</span><span class="WHIT"> <span class='line'>152</span> </span><span class="COMM">//String_to_Date.m; // matched string</span><span class="WHIT"> <span class='line'>153</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">String_to_Date</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">,</span><span class="NAME">diff</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// date string, force parse(no Date.parse() try), 時差 in hour(例如 TW: UTC+8 → 8, 可使用.5)</span><span class="WHIT"> <span class='line'>154</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">s</span><span class="PUNC">)</span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">this.valueOf</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//.toString();</span><span class="WHIT"> <span class='line'>155</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>156</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">f</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="NAME">diff</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">Date.parse</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 有diff時不使用 Date.parse</span><span class="WHIT"> <span class='line'>157</span> <span class='line'>158</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">s.match</span><span class="PUNC">(</span><span class="REGX">/(^|[^\d])([12]\d{3})([^\/.\-–年]|$)/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">+</span><span class="STRN">'/1'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 僅有年時的bug</span><span class="WHIT"> <span class='line'>159</span> <span class='line'>160</span> </span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">=</span><span class="NUMB">1911</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 小於此年份會加上此年份。for 民國</span><span class="WHIT"> <span class='line'>161</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">diff</span><span class="PUNC">)</span><span class="NAME">diff</span><span class="PUNC">=</span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">getTimezoneOffset</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="NAME">parseInt</span><span class="PUNC">(</span><span class="NUMB">60</span><span class="PUNC">*</span><span class="NAME">diff</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>162</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">diff</span><span class="PUNC">)</span><span class="NAME">diff</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>163</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">s.match</span><span class="PUNC">(</span><span class="NAME">String_to_Date.r1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> <span class='line'>164</span> </span><span class="WHIT"> </span><span class="COMM">// 日期先</span><span class="WHIT"> <span class='line'>165</span> </span><span class="WHIT"> </span><span class="COMM">//for(var i=1;i&lt;11;i++)m[i]=m[i]?Math.floor(m[i]):0; // needless</span><span class="WHIT"> <span class='line'>166</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">-</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="NAME">b</span><span class="PUNC">&lt;</span><span class="NUMB">200</span><span class="PUNC">?</span><span class="NAME">b</span><span class="PUNC">+</span><span class="NAME">f</span><span class="PUNC">:</span><span class="NAME">b</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">?</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">:</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">5</span><span class="PUNC">]</span><span class="PUNC">||</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">12</span><span class="PUNC">]</span><span class="PUNC">==</span><span class="STRN">'P'</span><span class="PUNC">||</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">13</span><span class="PUNC">]</span><span class="PUNC">==</span><span class="STRN">'p'</span><span class="PUNC">?</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">7</span><span class="PUNC">]</span><span class="PUNC">-</span><span class="NUMB">0</span><span class="PUNC">+</span><span class="NUMB">12</span><span class="PUNC">:</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">7</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">8</span><span class="PUNC">]</span><span class="PUNC">-</span><span class="NAME">diff</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">10</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">11</span><span class="PUNC">]</span><span class="PUNC">*</span><span class="NUMB">1</span><span class="NAME">e3</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>167</span> <span class='line'>168</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">m</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">s.match</span><span class="PUNC">(</span><span class="NAME">String_to_Date.r2</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="COMM">// 不match或僅有一數字</span><span class="WHIT"> <span class='line'>169</span> </span><span class="WHIT"> </span><span class="COMM">// 時間先</span><span class="WHIT"> <span class='line'>170</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">=</span><span class="NAME">c</span><span class="PUNC">,</span><span class="NAME">a</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">10</span><span class="PUNC">]</span><span class="PUNC">-</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">&&</span><span class="NAME">b</span><span class="PUNC">&lt;</span><span class="NUMB">200</span><span class="PUNC">?</span><span class="NAME">b</span><span class="PUNC">+</span><span class="NAME">f</span><span class="PUNC">:</span><span class="NAME">b</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">11</span><span class="PUNC">]</span><span class="PUNC">?</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">11</span><span class="PUNC">]</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">:</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">13</span><span class="PUNC">]</span><span class="PUNC">||</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">7</span><span class="PUNC">]</span><span class="PUNC">==</span><span class="STRN">'P'</span><span class="PUNC">||</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">7</span><span class="PUNC">]</span><span class="PUNC">==</span><span class="STRN">'p'</span><span class="PUNC">?</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">-</span><span class="NUMB">0</span><span class="PUNC">+</span><span class="NUMB">12</span><span class="PUNC">:</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">-</span><span class="NAME">diff</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">m</span><span class="PUNC">[</span><span class="NUMB">5</span><span class="PUNC">]</span><span class="PUNC">*</span><span class="NUMB">1</span><span class="NAME">e3</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>171</span> <span class='line'>172</span> </span><span class="WHIT"> </span><span class="COMM">//var t="match:\n"+s+"\n\n";for(var i=0;i&lt;m.length;i++){t+=(i>9?i:' '+i)+': '+m[i]+'\n';}if(!m[1]||!m[2]||!m[4])alert(t);</span><span class="WHIT"> <span class='line'>173</span> <span class='line'>174</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">String_to_Date.m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> <span class='line'>175</span> </span><span class="WHIT"> </span><span class="COMM">// 判別未輸入時預設年份設對了沒:以最接近 now 的為基準</span><span class="WHIT"> <span class='line'>176</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> <span class='line'>177</span> </span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">(</span><span class="NAME">a</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>178</span> </span><span class="WHIT"> </span><span class="NAME">a.setFullYear</span><span class="PUNC">(</span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">getFullYear</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>179</span> </span><span class="WHIT"> </span><span class="NAME">m.setFullYear</span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">s</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>180</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">m</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> <span class='line'>181</span> </span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">)</span><span class="WHIT"> <span class='line'>182</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">m</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>183</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> <span class='line'>184</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>185</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> <span class='line'>186</span> </span><span class="PUNC">}</span><span class="WHIT"> <span class='line'>187</span> <span class='line'>188</span> </span><span class="COMM">// Turn to RFC 822 date-time</span><span class="WHIT"> <span class='line'>189</span> </span><span class="COMM">//DateToRFC822[generateCode.dLK]='setTool,String_to_Date';</span><span class="WHIT"> <span class='line'>190</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">DateToRFC822</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> <span class='line'>191</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">d</span><span class="WHIT"> </span><span class="KEYW">instanceof</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> <span class='line'>192</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toDate</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>193</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">d</span><span class="PUNC">)</span><span class="WHIT"> <span class='line'>194</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>195</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">d.toGMTString</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/UTC/gi</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'GMT'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>196</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>197</span> <span class='line'>198</span> </span><span class="COMM">// 要用更多樣化的,請使用format_date()</span><span class="WHIT"> <span class='line'>199</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">Date_to_String</span><span class="PUNC">(</span><span class="NAME">sp</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> <span class='line'>200</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">sp</span><span class="PUNC">)</span><span class="WHIT"> <span class='line'>201</span> </span><span class="WHIT"> </span><span class="NAME">sp</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'/'</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>202</span> </span><span class="WHIT"> </span><span class="KEYW">with</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="WHIT"> <span class='line'>203</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">''</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">getYear</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">sp</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">getMonth</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">sp</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">getDate</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">' '</span><span class="WHIT"> <span class='line'>204</span> </span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">getHours</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">':'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">getMinutes</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> <span class='line'>205</span> </span><span class="WHIT"> </span><span class="COMM">// +':'+.getSeconds()+'.'+getMilliseconds();</span><span class="WHIT"> <span class='line'>206</span> </span><span class="WHIT"> </span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>207</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>208</span> </span><span class="COMM">//var tt='2001/8/7 03:35PM';alert(tt+'\n'+tt.toDate().toStr());</span><span class="WHIT"> <span class='line'>209</span> <span class='line'>210</span> <span class='line'>211</span> </span><span class="COMM">/* <span class='line'>212</span> mode: <span class='line'>213</span> +4:不顯示時間, <span class='line'>214</span> +3:顯示時間至時, <span class='line'>215</span> +2:顯示時間至分, <span class='line'>216</span> +1:顯示時間至秒, <span class='line'>217</span> +0:顯示時間至毫秒(ms) <span class='line'>218</span> <span class='line'>219</span> +32(4&lt;&lt;3):不顯示日期, <span class='line'>220</span> +24(3&lt;&lt;3):顯示日期mm/dd, <span class='line'>221</span> +16(2&lt;&lt;3):顯示日期yyyy/mm, <span class='line'>222</span> +8(1&lt;&lt;3):顯示日期yyyy/mm/dd(星期), <span class='line'>223</span> +0:顯示日期yyyy/mm/dd <span class='line'>224</span> <span class='line'>225</span> +64(1&lt;&lt;6):input UTC <span class='line'>226</span> +128(2&lt;&lt;6):output UTC <span class='line'>227</span> <span class='line'>228</span> NOTE: <span class='line'>229</span> 在現有時制下要轉換其他時區之時間成正確time: <span class='line'>230</span> d=_其他時區之時間_; <span class='line'>231</span> diff=其他時區之時差(例如 TW: UTC+8) <span class='line'>232</span> d.setTime(d.getTime()-60000*((new Date).getTimezoneOffset()+diff*60)) <span class='line'>233</span> <span class='line'>234</span> */</span><span class="WHIT"> <span class='line'>235</span> <span class='line'>236</span> </span><span class="NAME">CeL.native</span><span class="WHIT"> <span class='line'>237</span> </span><span class="PUNC">.</span><span class="WHIT"> <span class='line'>238</span> </span><span class="COMM">/** <span class='line'>239</span> * 顯示格式化日期 string <span class='line'>240</span> * @param date_value 要轉換的 date, 值過小時當作時間, &lt;0 轉成當下時間 <span class='line'>241</span> * @param {Number} mode 要轉換的 mode <span class='line'>242</span> * @param {Boolean} zero_fill 對 0-9 是否補零 <span class='line'>243</span> * @param {String} date_separator date separator <span class='line'>244</span> * @param {String} time_separator time separator <span class='line'>245</span> * @return {String} 格式化後的日期 <span class='line'>246</span> * @example <span class='line'>247</span> * alert(format_date()); <span class='line'>248</span> * @since 2003/10/18 1:04 修正 <span class='line'>249</span> * @since 2010/4/16 10:37:30 重構(refactoring) <span class='line'>250</span> * @requires setTool,to_fixed <span class='line'>251</span> * @see <span class='line'>252</span> * http://www.merlyn.demon.co.uk/js-dates.htm, <span class='line'>253</span> * http://aa.usno.navy.mil/data/docs/JulianDate.html <span class='line'>254</span> * @memberOf CeL.native <span class='line'>255</span> */</span><span class="WHIT"> <span class='line'>256</span> </span><span class="NAME">format_date</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">format_date</span><span class="PUNC">(</span><span class="NAME">date_value</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">mode</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">zero_fill</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">date_separator</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">time_separator</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> <span class='line'>257</span> </span><span class="WHIT"> </span><span class="COMM">//library_namespace.debug('[' + (typeof date_value) + '] ' + date_value + ', mode: ' + mode);</span><span class="WHIT"> <span class='line'>258</span> <span class='line'>259</span> </span><span class="WHIT"> </span><span class="COMM">// initiate</span><span class="WHIT"> <span class='line'>260</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">mode</span><span class="PUNC">)</span><span class="WHIT"> <span class='line'>261</span> </span><span class="WHIT"> </span><span class="NAME">mode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>262</span> <span class='line'>263</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">output_UTC</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">a</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">mode</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">time_mode</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">return_string</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">''</span><span class="PUNC">,</span><span class="WHIT"> <span class='line'>264</span> </span><span class="WHIT"> </span><span class="NAME">show_number</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">zero_fill</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> <span class='line'>265</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">9</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">n</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'0'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>266</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">n</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> <span class='line'>267</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">n</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>268</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>269</span> <span class='line'>270</span> </span><span class="WHIT"> </span><span class="COMM">// date & time mode</span><span class="WHIT"> <span class='line'>271</span> </span><span class="WHIT"> </span><span class="NAME">mode</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">64</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>272</span> </span><span class="WHIT"> </span><span class="COMM">// UTC mode</span><span class="WHIT"> <span class='line'>273</span> </span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">mode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">64</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>274</span> </span><span class="WHIT"> </span><span class="COMM">// input UTC</span><span class="WHIT"> <span class='line'>275</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>276</span> </span><span class="WHIT"> </span><span class="NAME">output_UTC</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>277</span> <span class='line'>278</span> </span><span class="WHIT"> </span><span class="NAME">time_mode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">mode</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NUMB">8</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>279</span> </span><span class="WHIT"> </span><span class="COMM">// date mode</span><span class="WHIT"> <span class='line'>280</span> </span><span class="WHIT"> </span><span class="NAME">mode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">mode</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NAME">time_mode</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="WHIT"> </span><span class="NUMB">8</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>281</span> </span><span class="WHIT"> </span><span class="COMM">// time_mode > 4 && mode > 3: error mode: 沒啥好顯示的了</span><span class="WHIT"> <span class='line'>282</span> <span class='line'>283</span> </span><span class="WHIT"> </span><span class="COMM">// 處理各種不同的 date</span><span class="WHIT"> <span class='line'>284</span> </span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">date_value</span><span class="PUNC">;</span><span class="WHIT"> <span class='line'>285</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'number'</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">date_value</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> <span class='line'>286</span> </span><span class="WHIT"> </span><span class="COMM">// 全球標準時間(UCT)與本地時間之差距</span><span class="WHIT"> <span class='line'>287</span> </span><span class="WHIT"> </span><span class="COMM">// UTC time = local time + format_date.UTC_offset(ms)</span><span class="WHIT"> <span class='line'>288</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">isNaN</span><span class="PUNC">(</span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">format_date.UTC_offset</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> <span class='line'>289</span> </span><span class="WHIT"> </span><span class="COMM">// input UTC 時之差距(ms)</span><span class="WHIT"> <span class='line'>290</span> </span><span class="WHIT"> </span><span class="COMM">// .getTimezoneOffset() is in minute. 60*1000(ms)=6e4(ms)</span><span class="WHIT"> <span class='line'>291</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">format_date.UTC_offset</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">6</span><span class="NAME">e4</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">getTimezoneOff