Javascript getFullYear不是一个函数
我试图根据两个日期得出年龄:出生日期和就诊日期。每次我尝试使用Javascript getFullYear不是一个函数,javascript,forms,adobe,acrobat,Javascript,Forms,Adobe,Acrobat,我试图根据两个日期得出年龄:出生日期和就诊日期。每次我尝试使用getFullYear()以以下方式:我得到 var b = getField("dob").value; var c = b.getFullYear(); 我在控制台中得到这个错误 b.getFullYear is not a function 2:Console:ExecException in line 2 of function top_level, script Console:Exec TypeError: b.get
getFullYear()代码>以以下方式:我得到
var b = getField("dob").value;
var c = b.getFullYear();
我在控制台中得到这个错误
b.getFullYear is not a function
2:Console:ExecException in line 2 of function top_level, script Console:Exec
TypeError: b.getFullYear is not a function
2:Console:Exec
undefined
我做错了什么?我尝试了各种方法来实现这一点,唯一能做的就是使用substring()
获取日期的最后4位数字
日期格式为mm\dd\yyyy
谢谢 tryvar b=新日期(getField(“dob”).value)代码>尝试var b=新日期(getField(“dob”).value)代码>尝试var b=新日期(getField(“dob”).value)代码>尝试var b=新日期(getField(“dob”).value)代码>您可以检查b类型是否为日期
例如:
您可以检查b类型是否为最新类型
例如:
您可以检查b类型是否为最新类型
例如:
您可以检查b类型是否为最新类型
例如:
你在评论中说
dob字段是一个文本字段,格式为dd/mm/yyyy,这就是您要问的吗
…您已经标记了您的问题acrobat
,因此我猜这是在PDF中运行的JavaScript,而不是在web浏览器中
在浏览器上,如果您试图解析格式为dd/mm/yyyyy
(例如,03/05/2014
)的字符串,无论浏览器的语言环境如何(美国、英国、西班牙、俄罗斯、日本),浏览器都会首先尝试将其读取为mm/dd/yyyy
(美国格式,年月日)。这在任何地方都没有指定(当然不是在JavaScript规范中),但我曾经尝试过的每个浏览器都是如此
如果Acrobat做了同样的事情,并且您的文本字段格式为dd/mm/yyyy
,您会遇到麻烦-是03/05/2014
5月3日还是3月5日?你现在使用的格式是5月3日,而美国格式是3月5日
除非您想在多个位置测试Acrobat(或者可以找到一个向您承诺如何解析该字符串的引用),否则您需要自己解析它
如果你只想在年底结束这一年,那相当简单:
var match = getField("dob").value.match(/(\d{4})\s*$/);
var year = match ? match[1] : undefined;
那将是一个字符串。如果要将其设置为数字,可以稍微更改第二行:
var year = match ? +match[1] : undefined;
(+
将匹配[1]
(我们知道都是数字)转换为数字。)
如果你想要完整的日期,这里有几个答案,以便演示如何用定义良好的格式解析日期。在你所说的评论中
dob字段是一个文本字段,格式为dd/mm/yyyy,这就是您要问的吗
…您已经标记了您的问题acrobat
,因此我猜这是在PDF中运行的JavaScript,而不是在web浏览器中
在浏览器上,如果您试图解析格式为dd/mm/yyyyy
(例如,03/05/2014
)的字符串,无论浏览器的语言环境如何(美国、英国、西班牙、俄罗斯、日本),浏览器都会首先尝试将其读取为mm/dd/yyyy
(美国格式,年月日)。这在任何地方都没有指定(当然不是在JavaScript规范中),但我曾经尝试过的每个浏览器都是如此
如果Acrobat做了同样的事情,并且您的文本字段格式为dd/mm/yyyy
,您会遇到麻烦-是03/05/2014
5月3日还是3月5日?你现在使用的格式是5月3日,而美国格式是3月5日
除非您想在多个位置测试Acrobat(或者可以找到一个向您承诺如何解析该字符串的引用),否则您需要自己解析它
如果你只想在年底结束这一年,那相当简单:
var match = getField("dob").value.match(/(\d{4})\s*$/);
var year = match ? match[1] : undefined;
那将是一个字符串。如果要将其设置为数字,可以稍微更改第二行:
var year = match ? +match[1] : undefined;
(+
将匹配[1]
(我们知道都是数字)转换为数字。)
如果你想要完整的日期,这里有几个答案,以便演示如何用定义良好的格式解析日期。在你所说的评论中
dob字段是一个文本字段,格式为dd/mm/yyyy,这就是您要问的吗
…您已经标记了您的问题acrobat
,因此我猜这是在PDF中运行的JavaScript,而不是在web浏览器中
在浏览器上,如果您试图解析格式为dd/mm/yyyyy
(例如,03/05/2014
)的字符串,无论浏览器的语言环境如何(美国、英国、西班牙、俄罗斯、日本),浏览器都会首先尝试将其读取为mm/dd/yyyy
(美国格式,年月日)。这在任何地方都没有指定(当然不是在JavaScript规范中),但我曾经尝试过的每个浏览器都是如此
如果Acrobat做了同样的事情,并且您的文本字段格式为dd/mm/yyyy
,您会遇到麻烦-是03/05/2014
5月3日还是3月5日?你现在使用的格式是5月3日,而美国格式是3月5日
除非您想在多个位置测试Acrobat(或者可以找到一个向您承诺如何解析该字符串的引用),否则您需要自己解析它
如果你只想在年底结束这一年,那相当简单:
var match = getField("dob").value.match(/(\d{4})\s*$/);
var year = match ? match[1] : undefined;
那将是一个字符串。如果要将其设置为数字,可以稍微更改第二行:
var year = match ? +match[1] : undefined;
(+
将匹配[1]
(我们知道都是数字)转换为数字。)
如果你想要完整的日期,这里有几个答案,以便演示如何用定义良好的格式解析日期。在你所说的评论中
dob字段是一个文本字段,格式为dd/mm/yyyy,这就是您要问的吗
…您已经标记了您的问题acrobat
,因此我猜这是在PDF中运行的JavaScript,而不是在web浏览器中
在浏览器上,如果您试图解析格式为dd/mm/yyyyy