[フレーム]

Class: Time

Inherits:
Object show all
Defined in:
opal/stdlib/json.rb,
opal/stdlib/time.rb,
opal/stdlib/native.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.def_formatter(name, format, on_utc: false, utc_tz: nil, tz_format: nil, fractions: false, on: self) ⇒ Object

26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'opal/stdlib/time.rb', line 26
def self.def_formatter(name, format, on_utc: false, utc_tz: nil, tz_format: nil, fractions: false, on: self)
 on.define_method name do |fdigits = 0|
 case self
 when defined?(::DateTime ) && ::DateTime 
 date = on_utc ? new_offset(0) : self
 when defined?(::Date ) && ::Date 
 date = ::Time .utc(year, month, day)
 when ::Time 
 date = on_utc ? getutc : self
 end
 str = date.strftime(format)
 str += date.strftime(".%#{fdigits}N") if fractions && fdigits > 0
 if utc_tz
 str += utc ? utc_tz : date.strftime(tz_format)
 elsif tz_format
 str += date.strftime(tz_format)
 end
 str
 end
end

.parse(str) ⇒ Object

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'opal/stdlib/time.rb', line 2
def self.parse(str)
 %x{
 var d = Date.parse(str);
 if (d !== d) {
 // parsing failed, d is a NaN
 // probably str is not in ISO 8601 format, which is the only format, required to be supported by Javascript
 // try to make the format more like ISO or more like Chrome and parse again
 str = str.replace(/^(\d+)([\./])(\d+)([\./])?(\d+)?/, function(matched_sub, c1, c2, c3, c4, c5, offset, orig_string) {
 if ((c2 === c4) && c5) {
 // 2007年10月1日 or 2007年10月1日 are ok, but 2007/10.1 is not, convert to 2007年10月1日
 return c1 + '-' + c3 + '-' + c5;
 } else if (c3 && !c4) {
 // 2007.10 or 2007/10
 // Chrome and Ruby can parse "2007/10", assuming its "2007年10月01日", do the same
 return c1 + '-' + c3 + '-01';
 };
 return matched_sub;
 });
 d = Date.parse(str);
 }
 return new Date(d);
 }
end

Instance Method Details

#to_dateObject

53
54
55
# File 'opal/stdlib/time.rb', line 53
def to_date
 Date .wrap (self)
end

#to_datetimeObject

57
58
59
# File 'opal/stdlib/time.rb', line 57
def to_datetime
 DateTime .wrap (self)
end

#to_jsonObject

195
196
197
# File 'opal/stdlib/json.rb', line 195
def to_json
 strftime('%FT%T%z').to_json
end

#to_nObject

519
520
521
# File 'opal/stdlib/native.rb', line 519
def to_n
 self
end

#to_timeObject

61
62
63
# File 'opal/stdlib/time.rb', line 61
def to_time
 self
end

AltStyle によって変換されたページ (->オリジナル) /