jquery 将日期从 mm/dd/yy 转换为 yyyy-dd-mm

问题描述 投票:0回答:4

我收到一个 ajax 响应,其日期格式为 mm/dd/yy。如何使用 jquery 将其转换为 yyyy-mm-dd 格式? jquery有内部函数可以做到这一点吗?

javascript jquery ajax jquery-plugins
4个回答
4
投票

简单,无需检查输入(JavaScript,无 jQuery):

var d        = '01/25/90';   // as an example
var yy       = d.substr(6,2);
var newdate  = (yy < 90) ? '20' + yy : '19' + yy;
    newdate += '-' + d.substr(0,2) + '-' + d.substr(3,2); //1990-01-25

2
投票

jQuery 的设计初衷并不是为了促进此类事情。 jQuery 库主要是关于 DOM 操作,为了代码结构的便利性做出了各种让步。

您需要做的是将传入地址拆分为文本,然后将其重建为兼容的 JavaScript 可解析日期,或者仅从字符串中获取年、月和日并使用 javascript“Date()”将这些作为数值的构造函数。此代码将为您提供格式中的日期:

此代码将为您提供格式如下的日期:

function toDate(str) {
  var rv = null;
  str.replace(/^(\d\d)\/(\d\d)\/(\d\d)\$/, function(d, yy, mm, dd) {
    if (!d) throw "Bad date: " + str;
    yy = parseInt(yy, 10);
    yy = yy < 90 ? 2000 + yy : 1900 + yy;
    rv = new Date(yy, parseInt(mm, 10) - 1, parseInt(dd, 10));
    return null;
  });
  return rv;
}

0
投票
<script>

    $(document).ready(function(){   

        $("#date").change(function(){
            var $d = $(this).val();  
            var $yy = $d.substr(6,4);
            var $dd = $d.substr(3,2);
            var $mm = $d.substr(0,2);
            var $newdate = $yy + '-' + $mm + '-' + $dd; 
            $("#date").val($newdate);
        });
    })

</script>


0
投票

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Dates</h2>

<p>Output :</p>

<p id="demo"></p>

<script>

const inputval = '121212';
console.log(inputval.value)
const transDtDD =  Number(inputval.slice(0,2))
const transDtMM =  Number(inputval.slice(2,4))
const transDtYY = Number(inputval.slice(4,6))

var dt = new Date();
  dt.setMonth(transDtMM-1);
  
const transDtMMM = dt.toLocaleString('en-US', { month: 'short' })

const dateVal = new Date(transDtDD+'/'+transDtMMM+'/'+transDtYY)

const transDate = dateVal.toLocaleDateString()

document.getElementById("demo").innerHTML = transDate;

</script>

</body>
</html>

我找到了从 DDMMYY 返回 DD/MM/YYYY 的选项

© www.soinside.com 2019 - 2024. All rights reserved.