2017-08-15 88 views
1

我试图从JS初学者生成一个日期和时间脚本,我相信你们之前见过这个。日期和时间脚本

我不确定我出错的地方,并且正在努力解决问题,因为日志只是吐出'错误'。

任何人都可以为我清除这个问题,坚持我写脚本的一般方法。解释会很棒!

var date = new Date(); 

var day = date.getDay(); 
var hour = date.getHours(); 
var min = date.getMinutes(); 
var sec = date.getSeconds(); 

var weekdays = [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]; 
var today = weekdays[day]; 

var amPm = amPmFunc; 
function amPmFunc() { 
    if(hour < 12) { 
     amPm = AM; 
    } else { 
     amPm = PM; 
    } 
} 

console.log("Today is: " + today); 
console.log("Current time is: " + hour + amPM + ":" + min + ":" + "sec"); 
+4

是否应星期天等加引号? –

+1

开始的时候,你周日数组中的所有元素都需要是字符串(用“”括起来)。 –

+1

AM'&'PM'是否也应该加引号? –

回答

3

首先,您忘记了用''附上一些字符串。即Sunday应该是'Sunday'

另外 - 请记住 - Javascript 是case sensetive。所以一个名为amPm的变量将不会被识别为amPM

此外,你的函数amPmFunc应该返回一个值,而不是设置一个全局变量的值。这种方法很简单。当你打电话给它时,用括号来呼叫它:var amPm = amPmFunc();

但除此之外 - 干得好! ☻

见该固定例如:

var date = new Date(); 
 

 
var day = date.getDay(); 
 
var hour = date.getHours(); 
 
var min = date.getMinutes(); 
 
var sec = date.getSeconds(); 
 

 
var weekdays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; 
 
var today = weekdays[day]; 
 

 
var amPm = amPmFunc(); 
 

 
function amPmFunc() { 
 
    if(hour < 12) 
 
     return 'AM'; 
 
    else 
 
     return 'PM'; 
 
} 
 

 
console.log("Today is: " + today); 
 
console.log("Current time is: " + hour + amPm + ":" + min + ":" + "sec");

+0

Bah这些语法错误是我生活中的祸根。<...感谢 –

+0

高兴地帮忙,祝你好运如果你有更多的问题,请在这里给我打电话@ 11- –

1
var weekdays = [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]; 

他们应该是字符串。

var weekdays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; 
3

为什么?

  1. Array declaration错了.Missed报价在阵列格式化字符串
  2. JavaScript是case sensitive one.so不要忘了信
  3. 对于函数声明,你可以使用()样的情况下, var amPm = amPmFunc(),并在ampm函数中加上return statement,否则返回undefined。

MY 建议:为了更好地你好好学习如何声明variable,功能和 字符串中的JS

var date = new Date(); 
 

 
var day = date.getDay(); 
 
var hour = date.getHours(); 
 
var min = date.getMinutes(); 
 
var sec = date.getSeconds(); 
 

 
var weekdays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; 
 
var today = weekdays[day]; 
 

 
var amPm = amPmFunc() 
 

 
function amPmFunc() { 
 
    if (hour < 12) { 
 
    amPm = 'AM'; 
 
    } else { 
 
    amPm = 'PM'; 
 
    } 
 
    return amPm 
 
} 
 

 
console.log("Today is: " + today); 
 
console.log("Current time is: " + hour + amPm + ":" + min + ":" + "sec");

1
  1. 所有字符串必须在“
  2. name_of_function();而不是name_of_function
  3. 函数必须返回出头,你amPmFunc()没有返回AMPM

var date = new Date(); 

var day = date.getDay(); 
var hour = date.getHours(); 
var min = date.getMinutes(); 
var sec = date.getSeconds(); 

var weekdays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; 
var today = weekdays[day]; 


function amPmFunc() { 
    if(hour < 12) { 
     amPm = "AM"; 
    } else { 
     amPm = "PM"; 
    } 

    return amPm; 
} 
var amPM = amPmFunc(); 
console.log("Today is: " + today); 
console.log("Current time is: " + hour + amPM + ":" + min + ":" + "sec"); 
+0

也许单引号更好 - 保存字符串的解释 –

+0

只需在小时函数中添加错误修复。 – Dimash

0

试试这个

var date = new Date(); 
 
var day = date.getDay(); 
 
var hour = date.getHours(); 
 
var min = date.getMinutes(); 
 
var sec = date.getSeconds(); 
 

 
var weekdays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; 
 
var today = weekdays[day]; 
 

 
var amPm = ''; 
 
    if(hour < 12) { 
 
     amPm = 'AM'; 
 
    } else if (hour > 12){ 
 
     hour = hour - 12; 
 
     amPm = 'PM'; 
 
    } else { 
 
     amPm = 'PM' 
 
    } 
 
console.log("Today is: " + today); 
 
console.log("Current time is: " + hour + amPm + ":" + min + ":" + sec);