Class: Knj::Datestamp

Inherits:
Object show all
Defined in:
lib/knj/datestamp.rb

Class Method Summary collapse

Class Method Details

.dbstr(time = nil) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/knj/datestamp.rb', line 12

def self.dbstr(time = nil)
  if !time
    time = Time.new
  end
  
  if (Float(time) rescue false)
    time = Time.at(time.to_i)
  elsif time.is_a?(String)
    begin
      time = Time.local(*ParseDate.parsedate(time))
    rescue => e
      raise sprintf("Could not parse date: %s", time.to_s)
    end
  else
    raise "Could not figure out given argument: #{time.class.name}"
  end
  
  return "%04d" % time.year.to_s + "-" + "%02d" % time.month.to_s + "-" + "%02d" % time.day.to_s + " " + "%02d" % time.hour.to_s + ":" + "%02d" % time.min.to_s + ":" + "%02d" % time.sec.to_s
end

.from_dbstr(date_string) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/knj/datestamp.rb', line 32

def self.from_dbstr(date_string)
  if Knj::Datestamp.is_nullstamp?(date_string)
    return 0
  end
  
  return Time.local(*ParseDate.parsedate(date_string))
end

.in(timestr) ⇒ Object



2
3
4
5
6
7
8
9
10
# File 'lib/knj/datestamp.rb', line 2

def self.in(time = Time.new)
  if (Float(time) rescue false)
    time = Time.at(time.to_i)
  elsif time.is_a?(String)
    time = Time.local(*ParseDate.parsedate(time))
  end
  
  return time
end

.is_nullstamp?(datestamp) ⇒ Boolean

Returns:

  • (Boolean)


87
88
89
90
# File 'lib/knj/datestamp.rb', line 87

def self.is_nullstamp?(datestamp)
  return true if datestamp.is_a?(String) and datestamp == "0000-00-00 00:00:00"
  return false
end

.out(time = nil, args = {}) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/knj/datestamp.rb', line 40

def self.out(time = nil, args = {})
  Knj::ArrayExt.hash_sym(args)
  
  time = Time.new if !time
  
  if (Float(time) rescue false)
    time = Time.at(time.to_i)
  elsif time.is_a?(String)
    time = Time.at(Php4r.strtotime(time))
  end
  
  str = ""
  
  if !args.key?(:date) or args[:date] == true
    str << "%02d" % time.day.to_s + "/" + "%02d" % time.month.to_s + " " + "%04d" % time.year.to_s
  end
    
  if !args.key?(:time) or args[:time] == true
    str << " " + "%02d" % time.hour.to_s + ":" + "%02d" % time.min.to_s
  end
  
  return str
end