瀏覽代碼

Lua : add date/string helper methods to Boot.hx

Justin Donaldson 10 年之前
父節點
當前提交
4e561c14fc
共有 1 個文件被更改,包括 40 次插入0 次删除
  1. 40 0
      std/lua/Boot.hx

+ 40 - 0
std/lua/Boot.hx

@@ -218,4 +218,44 @@ class Boot {
 		}
 
 	}
+
+	public static function dateStr( date : std.Date ) : String {
+		var m = date.getMonth();
+		var d = date.getDate();
+		var h = date.getHours();
+		var mi = date.getMinutes();
+		var s = date.getSeconds();
+		return date.getFullYear()
+			+"-"+(if( m < 10 ) "0"+m else ""+m)
+			+"-"+(if( d < 10 ) "0"+d else ""+d)
+			+" "+(if( h < 10 ) "0"+h else ""+h)
+			+":"+(if( mi < 10 ) "0"+mi else ""+mi)
+			+":"+(if( s < 10 ) "0"+s else ""+s);
+	}
+
+	public static function strDate( s : String ) : std.Date {
+		switch( s.length ) {
+		case 8: // hh:mm:ss
+			var k = s.split(":");
+			var t = lua.Os.time({
+				year  : 0,
+				month : 1,
+				day   : 1,
+				hour  : Std.parseInt(k[0]),
+				min   : Std.parseInt(k[1]),
+				sec   : Std.parseInt(k[2])
+			});
+			return std.Date.fromTime(t);
+		case 10: // YYYY-MM-DD
+			var k = s.split("-");
+			return new std.Date(Std.parseInt(k[0]), Std.parseInt(k[1]) - 1, Std.parseInt(k[2]),0,0,0);
+		case 19: // YYYY-MM-DD hh:mm:ss
+			var k = s.split(" ");
+			var y = k[0].split("-");
+			var t = k[1].split(":");
+			return new std.Date(cast y[0],Std.parseInt(y[1]) - 1, Std.parseInt(y[2]),Std.parseInt(t[0]),Std.parseInt(t[1]),Std.parseInt(t[2]));
+		default:
+			throw "Invalid date format : " + s;
+		}
+	}
 }