javascript - 使用 cookie 获取月份、日期和时间。但是,它们没有打印,而且我的日期未定义?

标签 javascript html date cookies time

我有下面的代码。我在这一行 `var datemsg = nameOfMonths[date.getMonth()] + ""+ date.getDate(); 中收到未定义或错误。

如果我只是使用 var date = new Date(); 值将打印在 HTML 页面上。但是使用我打算使用下面的代码使用 getCookie("date") 从浏览器获取日期。它给了我一个错误,并且不会打印日期和时间。

<body onload="setsaveCookie(); loadSaveCookies()">
<h1 class="header">Welcome your visit started on <span id="date"></span> at <span id="time"></span> <span id="ampm"></span></h1>

function setsaveCookie() {
  var date = new Date();
  setCookie("date", date, 30);

  getDate();
}

function setCookie(cookieName, cookieValue, expires) {
  var date = new Date();
  date.setTime(date.getTime() + (expires * 24 * 60 * 60 * 1000));
  var dayexpires = "expires=" + date.toGMTString();
  document.cookie = cookieName + "=" + cookieValue + ";" + dayexpires + ";path=/";
  var msg = "";
}

function getDate() {
  var date = new Date();
  var nameOfMonths = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "July", "Aug", "Sep", "Oct", "Nov", "Dec"]
  var ampm = "";
  var date = getCookie("date");
  var twelvehourtime = "";
  var datemsg = nameOfMonths[date.getMonth()] + " " + date.getDate();
  document.getElementById("date").innerHTML = datemsg;
}

function getCookie(cookieName) {
  var name = cookieName + "=";
  var decodedCookie = decodeURIComponent(document.cookie);

  var ca = decodedCookie.split(';');

  for (var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

最佳答案

这是 getDate 函数的修订版本。

function getDate() {
var nameOfMonths = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "July", "Aug", "Sep", "Oct", "Nov", "Dec"]
    var ampm = "";
    var date = getCookie("date");
    var dt = new Date(date);
    var twelvehourtime = "";
    var datemsg = nameOfMonths[dt.getMonth()] + " " + dt.getDate();
    document.getElementById("date").innerHTML = datemsg;
}

关于javascript - 使用 cookie 获取月份、日期和时间。但是,它们没有打印,而且我的日期未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42677022/

相关文章:

php - 递归遍历 DOM 树并删除不需要的标签?

javascript - 如何仅在分配时应用 Webkit-input-placeholder

mysql - DATEDIFF 与 (w1.date = w2.date +1) 的区别? MySQL语法

javascript - 想要滚动 DIV 元素,而不是整个网页

html - 页面在 Google Chrome 和 Internet Explorer 中显示正常,但所有内容在 Mozilla Firefox 中都被关闭

php - 在 mysql (php) 中存储缺少日期/月份的日期的方法

linux - 如何更改 linux/unix 文本文件中的日期格式

javascript - 如何防止jquery悬停效果激活打开和关闭悬停

javascript - 如何编写(flutter web)代码,以便 JavaScript 文件可以在我的本地机器上运行?

javascript - jQuery UI - 滑出并推送相邻内容