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


谢谢

try
var 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