首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用JavaScript数组和getDate显示今天的日期?

如何使用JavaScript数组和getDate显示今天的日期?
EN

Stack Overflow用户
提问于 2019-04-01 03:49:17
回答 1查看 418关注 0票数 0

我无法以以下格式显示日期:

今天是星期五,是2019年6月 in year 2019的第29天。

我在HTML5文档中使用JavaScript。我已经提供了我的代码,并感谢任何帮助。除了基本级别的JavaScript,我不想使用任何第三方库来完成此任务。

代码语言:javascript
复制
<script type="text/javascript">
  <!--

  var monthName = new Array();
  monthName[0] = "January";
  monthName[1] = "February";
  monthName[2] = "March";
  monthName[3] = "April";
  monthName[4] = "May";
  monthName[5] = "June";
  monthName[6] = "July";
  monthName[7] = "August";
  monthName[8] = "September";
  monthName[9] = "October";
  monthName[10] = "November";
  monthName[11] = "December";

  var myYear = today.getFullYear();
  var myDate = today.getDate();

  var dayExt = "th";

  if ((myDate == 1) || (myDate == 21) || (myDate == 31)) dayExt = "st";
  if ((myDate == 2) || (myDate == 22)) dayExt = "nd";
  if ((myDate == 3) || (myDate == 23)) dayExt = "rd";

  var extDate = myDate + dayExt;

  document.write(extDate + "Today is the day of ");
  document.write(monthName[today.getMonth()] + " in the year ");
  document.write(myYear + ".");

  // -->
</script>

当前结果: Nothing

预期结果:今天是2019年3月31日的周日。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-01 05:10:39

这里有一种方法。这项任务本身相当简单--注意

创建数组的方式和检查多个条件的方式,以及使用模板表示法创建字符串的方式-美元符号,左大括号,表达式,右大括号-将内容放在页面上而不破坏任何已存在的内容的${expression_goes_here}

  • method。在您尝试运行任何搜索或修改预期内容的代码之前,document.write仍然会为我们中的许多人提供等待的nightmares!

  • method,直到整个页面加载完毕,并且对JS可用。

代码语言:javascript
复制
"use strict";
window.addEventListener('load', function()
{
	var monthNames = ['January','Febuary','March','April','May','June','July','August','September','October','November','December'];
	var dayNames = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
	var today = new Date();
	
	var dayName = dayNames[today.getDay()];
	var monthName = monthNames[today.getMonth()];
	var dayOfMonth = today.getDate();
	
	var ext = dayOfMonth % 10;		// extract last (least significant) digit
	switch (ext)
	{
		case 1: 	ext = "st"; break;
		case 2: 	ext = "nd"; break;
		case 3: 	ext = "rd"; break;
		default:	ext = "th"; break;
	}
	
	var text = `Today is ${dayName}, the ${today.getDate()}${ext} day of ${monthName} in the year ${today.getFullYear()}`;
	var textElem = document.createTextNode(text);
	document.body.appendChild(textElem);
}, false );

  1. 您可以创建一个包含所有数据的数组。你不需要在每次费力地插入每个元素之前创建一个空数组,你应该研究一下模板表示法的statement.
  2. Use of switch
  3. switch可以让事情变得更清晰,因为你可以避免关闭一个字符串,在添加新字符串之前给它添加一些值-你只需要用${}
  4. document.write来划分变量等等(我不想费心去检查!)有点粗糙,因为第一次在页面中使用会破坏和删除任何已经发送到浏览器的内容(脚本、样式等)更好的解决方案是创建一个具有某种描述的HTML元素,在将该元素添加到页面之前设置该元素的内容。我使用了一个文本节点,它模糊地等同于“无元素”-文本不会被尖括号和html标签包围。
  5. 你可能会注意到整个代码都包在括号里。我已经告诉浏览器,当一个事件被触发,表明所有html元素都已被读取、解析并可用于交互时,我希望得到通知。

表单如下:

window.addEventListener('load', callThisFuncWhenLoadEventReceived, false);

我可以指定为响应此事件而调用的函数的名称,也可以像这里一样使用一个没有名称的函数(匿名函数)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55444834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档