1
0
mirror of https://github.com/robertkrimen/otto synced 2025-10-12 20:27:30 +08:00

Add Date.toDateString, Date.toTimeString

This commit is contained in:
Robert Krimen 2013-06-04 19:56:03 -07:00
parent 0084268e1f
commit 716c307c8d
3 changed files with 26 additions and 1 deletions

View File

@ -9,7 +9,9 @@ import (
const (
// TODO Be like V8?
// builtinDate_goDateTimeLayout = "Mon Jan 2 2006 15:04:05 GMT-0700 (MST)"
builtinDate_goDateTimeLayout = Time.RFC1123
builtinDate_goDateTimeLayout = Time.RFC1123 // "Mon, 02 Jan 2006 15:04:05 MST"
builtinDate_goDateLayout = "Mon, 02 Jan 2006"
builtinDate_goTimeLayout = "15:04:05 MST"
)
func builtinDate(call FunctionCall) Value {
@ -35,6 +37,22 @@ func builtinDate_toString(call FunctionCall) Value {
return toValue(date.Time().Local().Format(builtinDate_goDateTimeLayout))
}
func builtinDate_toDateString(call FunctionCall) Value {
date := dateObjectOf(call.thisObject())
if date.isNaN {
return toValue("Invalid Date")
}
return toValue(date.Time().Local().Format(builtinDate_goDateLayout))
}
func builtinDate_toTimeString(call FunctionCall) Value {
date := dateObjectOf(call.thisObject())
if date.isNaN {
return toValue("Invalid Date")
}
return toValue(date.Time().Local().Format(builtinDate_goTimeLayout))
}
func builtinDate_toUTCString(call FunctionCall) Value {
date := dateObjectOf(call.thisObject())
if date.isNaN {

View File

@ -99,6 +99,11 @@ func TestDate(t *testing.T) {
abc = Object.getOwnPropertyDescriptor(Date, "parse");
[ abc.value === Date.parse, abc.writable, abc.enumerable, abc.configurable ];
`, "true,true,false,true")
test(`
abc = Object.getOwnPropertyDescriptor(Date.prototype, "toTimeString");
[ abc.value === Date.prototype.toTimeString, abc.writable, abc.enumerable, abc.configurable ];
`, "true,true,false,true")
}
func TestDate_parse(t *testing.T) {

View File

@ -358,6 +358,8 @@ func newContext() *_runtime {
builtinNewDate,
self.Global.DatePrototype,
"toString", 0, builtinDate_toString,
"toDateString", 0, builtinDate_toDateString,
"toTimeString", 0, builtinDate_toTimeString,
"toUTCString", 0, builtinDate_toUTCString,
"toGMTString", 0, builtinDate_toGMTString,
"toLocaleString", 0, builtinDate_toLocaleString,