关于javascript日期的问题

关于javascript日期的问题,javascript,Javascript,我有两个关于日期的问题 第一个问题是如何从Javascript中的日期获取AM/PM 第二个问题是,假设我有这个代码 var convertedStartDate = new Date(dueDate); var month = convertedStartDate.getMonth() + 1; var day = convertedStartDate.getDate(); var year = convertedStartDate.getFullYear();

我有两个关于日期的问题

第一个问题是如何从Javascript中的日期获取AM/PM

第二个问题是,假设我有这个代码

    var convertedStartDate = new Date(dueDate);
    var month = convertedStartDate.getMonth() + 1;
    var day = convertedStartDate.getDate();
    var year = convertedStartDate.getFullYear();
     var shortDueDate = month + "/" + day + "/" + year;
现在,正如您所看到的,我希望始终使用这种格式mm/dd/yyyy

所以我想知道dueDate是否是1/9/2010 mm/dd/yyyyyy,但该人以dd/mm/yyyyyyyy的形式输入了其他格式的日期

月份=1 天=9 年份=2010年


还是我必须告诉它,总是转换成mm/dd/yyyy?或者,它是否有自己的格式,以便始终获得正确的顺序?也就是说,不管他们把日期按什么顺序排列,它总是以9作为一天。

在这里,尝试一下:

now = new Date();

hour = now.getHours();
var tag = "";

if (hour >= 12) {
  tag = "pm";
} else {
  tag = "am";
}

至于你问题的第二部分,我只是将表单的这些部分划分为单独的字段,没有其他方法。您只需要在表单中写一些提示。

在这里,尝试一下:

now = new Date();

hour = now.getHours();
var tag = "";

if (hour >= 12) {
  tag = "pm";
} else {
  tag = "am";
}

至于你问题的第二部分,我只是将表单的这些部分划分为单独的字段,没有其他方法。您只需在表单中写入一些提示。

您需要始终将用户输入的内容转换为Javascript日期对象。记住-Javascript是客户端计算机的本地语言。。。美国人的格式设置与英国或中国人的格式设置不同


为了让事情简单。。。建议或在输入文本框附近提示所需的输入格式。然后,使用正则表达式对该格式进行验证。这样你几乎可以保证得到想要的日期。。。好除非用户禁用了Javascript。英雄联盟那样的话您需要在服务器端进行转换,无论如何您都应该这样做。

您需要始终转换/转换用户在Javascript日期对象中输入的任何内容。记住-Javascript是客户端计算机的本地语言。。。美国人的格式设置与英国或中国人的格式设置不同


为了让事情简单。。。建议或在输入文本框附近提示所需的输入格式。然后,使用正则表达式对该格式进行验证。这样你几乎可以保证得到想要的日期。。。好除非用户禁用了Javascript。英雄联盟那样的话您需要在服务器端进行转换,无论如何您都应该这样做。

要获得某个时间的AM/PM,请找到我很久以前编写的一些旧代码。请参阅此处的remove am/pm,您可以使用子字符串将其替换为get

function ValidateAdvancedTime(time, formatType){
  time = time.replace(".", ":");
  var newTime = time.substring(0, (time.indexOf(":") + 3)); // Strip out the seconds
  var status = ValidateTime(newTime, formatType);

  if(status == false) 
    return false;

  var seconds = time.substring(time.indexOf(":") + 4, time.length);
  if(seconds.length > 2) 
    **seconds = seconds.substring(0, 2);                      // Remove any AM/PM afterwards**

  if(!isNaN(seconds)) {                                         // Make sure its a number and it's between 0 and 59
    if((seconds <= 59) && (seconds >= 0)) 
        return true;
  }
  return false; 
}


就日期而言,我在数据库中存储2010年1月9日或2010年9月1日从未遇到任何问题

要获取某个时间的AM/PM,请找到我很久以前编写的一些旧代码。请参阅此处的remove am/pm,您可以使用子字符串将其替换为get

function ValidateAdvancedTime(time, formatType){
  time = time.replace(".", ":");
  var newTime = time.substring(0, (time.indexOf(":") + 3)); // Strip out the seconds
  var status = ValidateTime(newTime, formatType);

  if(status == false) 
    return false;

  var seconds = time.substring(time.indexOf(":") + 4, time.length);
  if(seconds.length > 2) 
    **seconds = seconds.substring(0, 2);                      // Remove any AM/PM afterwards**

  if(!isNaN(seconds)) {                                         // Make sure its a number and it's between 0 and 59
    if((seconds <= 59) && (seconds >= 0)) 
        return true;
  }
  return false; 
}


就日期而言,我在数据库中存储2010年1月9日或2010年9月1日从未遇到任何问题

哦,这是另一件事,从1-12有另一个内置的东西来做,就像我想要在1时有1300个小时。这个例子不太正确。它应该说如果小时>=12。否则,中午半会是amthen,看看它是否大于12,然后减去12?我修正了它,但是它会很好,因为它总是返回一个整数,这不包括分钟。哦,这是另一件事,从1-12有另一个内置的东西来做,就像我在1时需要1300小时。这个例子不太正确。它应该说如果小时>=12。否则,中午半会是amthen看看它是否大于12,然后减去12?我修正了它,但是它会工作得很好,因为它总是返回一个整数,这不包括分钟。如果你正在进行大量的日期处理,或者需要处理用户输入日期的许多不同方式,date.js是一个涵盖了许多基础的库-如果您正在进行大量的日期处理,或者需要处理用户输入日期的许多不同方式,date.js是一个涵盖了许多基础的库-