GTM中的自定义Javascript变量将日期(字符串)转换为日期

时间:2017-01-31 03:58:36

标签: javascript date google-tag-manager

我正在将一个出生日期作为字符串从我正在照看的网站上的表格中提取出来。我需要能够从该日期字符串中获取年龄。 我的想法是使用分割(由"%2F"分隔)将其转换为正确的日期并从中进行计算,但我的语法不是那么好,所以我有真正的麻烦。 我正在使用的代码来拉取我需要的字符串;

function() {
var inputField = document.getElementById("date-of-birth-input");
return inputField.value || "";
}

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

如果您让用户以1/1/1990的格式输入日期,您可以执行以下操作:

var inputField = document.getElementById("date-of-birth-input"); // `1/1/1990`
var today = new Date().getFullYear();
var birthdate = new Date(inputField).getFullYear();
var age = today - birthdate;

JavaScript Date构造函数在变成日期方面非常灵活,因此您可能不需要经历分裂字符串麻烦。查看docs

答案 1 :(得分:0)

日期格式因国家/地区而异。在美国,日期格式为MM-DD-YYYY,而在亚洲国家/地区,日期格式为DD-MM-YYYY,而在中国则为'YYYY-MM-DD。处理日期的正确方法是使用Moment.js

如果您的<head>标记中包含简单的应用程序/网站,请注明以下内容

<script src="moment.js"></script>

(希望你下载了moment.js并保持与index.html相同的结构)。否则,如果您想直接从网上使用它而不下载,请使用此选项。

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/locale/af.js"></script>

然后使用以下

   function() {
    /* First-make sure you format moment according to your giving locale.
      I'm formating here according to the US date format */
    var inputField = moment(document.getElementById("date-of-birth-input")).format("MM-DD-YYYY");
    return moment().diff(inputField, 'years');
    }

我希望这会有所帮助。感谢。