【问题标题】:How to change date format in html from mm-dd-yyyy to dd-mm-yyyy?如何将 html 中的日期格式从 mm-dd-yyyy 更改为 dd-mm-yyyy?
【发布时间】:2022-01-28 11:08:10
【问题描述】:

我的问题是如何以 21-01-1999 格式而不是 01-21-1999 格式输入 HTML 格式的日期? 当我编写这段 HTML 代码时

<input name = "dPregled" id="dat" type="date" required="required" />
  </p>

它为我提供了 mm-dd-yyyy 格式的输入。 还有一种方法可以在表单中自动获取今天的日期吗?

我一直在到处寻找答案,但找不到。 非常感谢。

【问题讨论】:

  • 输入端日期的格式和显示由客户端(浏览器)决定。大多数浏览器以不同方式显示输入字段。大多数已知的浏览器将使用用户的语言环境来确定输入。例如。我是荷兰人,我的浏览器是荷兰语,所以日期显示为“dd-mm-yyyy”。 您能否添加您的客户正在使用的语言环境以及您正在使用的客户(浏览器)?
  • 日期格式由操作系统决定。就像在 Windows 中一样,您需要更改操作系统日期格式。

标签: html date datetime


【解决方案1】:

快速的 Google 搜索可以为您提供大量问题的答案。

来自https://developers.google.com/web/updates/2012/08/Quick-FAQs-on-input-type-date-in-Google-Chrome?hl=en(所以这适用于 Chrome)

Web 作者无法更改日期格式,因为 目前没有指定格式的标准。

其余的,根据Is there any way to change input type="date" format?How to set date format in HTML date input tag?,目前没有办法更改日期格式。这一切都由您的浏览器/操作系统决定,并且由于还没有关于如何更改日期格式的规范,您目前无法更改格式。

但是

上面提到的 Stack Overflow 帖子已经很老了,但最近的一个答案(目前是 Is there any way to change input type="date" format? 上的第二个答案)确实提供了有关如何编辑格式的答案,尽管它需要一些我的会调用一些高级的东西。您可以使用 HTML5 和 shadow DOM 来实现,这使您能够或多或少地创建自己的 HTML 元素。不过,较旧的浏览器/浏览器版本通常不太支持它,但您可以深入研究一下,看看它是否适合您。

【讨论】:

  • 我自己找到了答案,但我认为比我更有经验的人可以知道得更好。但是非常感谢你的回答。
  • 我已经更新了我的帖子,因为我发现了一些可能对你有帮助的东西,虽然这不是我自己实现的东西,但我觉得它不够稳定。不过,看看和玩玩很有趣,所以如果你喜欢的话,你可以在那里学习一点:)
  • 非常感谢,我去试试!
【解决方案2】:

关于这个问题:

还有没有办法在表单中自动获取今天的日期?

如果我需要当前日期,我会这样做:

//assign that variable to your date field
//today date. 
if(empty ($_POST['date_today'])){
  $_POST['date_today'] = date("Y-m-d");
}
//if u need other date + or - number day to count that date(here is past 5 days)
if(empty ($_POST['date_from'])){
  $_POST['date_from'] = date("Y-m-d", strtotime("-5 day"));
}

在你的 html 中(今天)应该是这样的:

<input type="date" name="date_today" value="<?=$date_today?>" >

不要忘记声明该变量(例如今天的日期)

$date_today = $_POST['date_today'];

【讨论】:

    【解决方案3】:
    1. 使用 Jquery 日期选择器很容易,它可以修改任何格式的日期
    2. 改用输入类型文本,以便使用预定义值更方便
    3. 或使用此代码,并根据要求进行编辑

    基本上这段代码会帮你检查

    <!-----user will type date in dd-mm-yyyy formate but as he leaves textbox date will be converted to mm-dd-yyyy--->
    
    <!--run it on fiddle : https://jsfiddle.net/rokrd/jp1swqru/9/ --->
    
    <input type="text"  name = "dPregled" id="dat" onchange="dateconverter()" required="required" />
    
    
    
    <script>
    function dateconverter(){
    
    /*const monthNames = ["Jan","Jan", "Feb", "Mar", "Apr", "May", "Jun",
      "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
    ];*/
    
    
    var testDate = document.getElementById("dat").value;
    
    
    dteSplit = testDate.split("-");
    yr = dteSplit[2]; //special yr format, take last 2 digits
    month = dteSplit[1];
    month = parseInt(month);
    //month = monthNames[month];
    //remove comment to get output in dd/M/yyyy
    
    day = dteSplit[0];
    
    
    alert ("converted to mm/dd/yyyy > "+month+"-"+day+"-"+yr);
    
    document.getElementById("dat").value = month+"-"+day+"-"+yr;
    }
    
    </script>
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-29
      • 2011-03-05
      • 1970-01-01
      相关资源
      最近更新 更多