我负责为JSON数据库中的数据构建前端。当与日工作时,信息存储格式为:将日期的一部分作为单独变量获取
16年12月31日
我需要separatly使用这些值。有没有办法让变量像这样?:
var month = 12
var day = 31
var year = 16
我负责为JSON数据库中的数据构建前端。当与日工作时,信息存储格式为:将日期的一部分作为单独变量获取
16年12月31日
我需要separatly使用这些值。有没有办法让变量像这样?:
var month = 12
var day = 31
var year = 16
假设你的日期是一个字符串。你可以将它拆分为/
,这将导致一个数组。之后使用数组索引那里获得价值
var _date = "12/31/16",
splitDate = _date.split("/"),
month = splitDate[0],
day = splitDate[1],
year = splitDate[2];
console.log(month, day, year)
如果您想验证你的约会原始值,并且您的代码,以支持不同的文化,使用时刻JS。
你举的例子:
function dateChanged(rawDate) {
var mydate = moment(rawDate, 'MM/DD/YY');
$('#day').innerHTML = mydate.date();
$('#month').innerHTML = mydate.month() + 1; // months are 0 based
$('#year').innerHTML = mydate.year();
}
document.addEventListener('DOMContentLoaded', function() {
var input = $('input');
input.value = '12/31/16';
dateChanged(input.value);
});
var $ = document.querySelector.bind(document);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js">
</script>
<input onchange="dateChanged(this.value)" type="text" />
year <span id="year"></span>
month <span id="month"></span>
day <span id="day"></span>
这是一个时间&日期的js框架,允许解析和格式化日期根据图案&倍&语言环境 这是最好的我知道
我知道moment.js在这里不是一个好的选择:_Deprecation警告:提供的值不是以公认的RFC2822或ISO格式。时刻构造会回落到js Date(),这在所有浏览器和版本中都不可靠。非RFC2822/ISO日期格式不鼓励,将在即将到来的主要版本中删除。 – mplungjan
@shmulikfriedman谢谢,语言环境和模式甚至没有出现在我身上。虽然其他问题在没有图书馆的情况下更直接地回答我的问题,但您给了我一些非常重要的想法。 – Auzy
@mplungjan, 1.在我明确提供了格式之后,它不再被弃用,(同时,提供的日期格式不是我的提问者) 2.如果你控制它,RFC2822或ISO是一个很好的练习格式,但如果原始日期来自用户输入,或者让我们说OCR识别?在那里你必须面对气馁的格式,仍然可以解析日期 –
所以我们所有的人(除了Matt.C)都错过了,你可能想把YY强制为YYYY--这是非常糟糕的做法,将一年存储为两位数字。
假设所有日期是从本世纪:
var dateString = "12/31/16";
var [month,day,year] = dateString.split("/"); // very new method
year = "20"+year; // if needed
以上需要被parseInt'ed成为数字
老越兼容
var dateString = "12/31/16",
parts = dateString.split("/"),
month = +parts[0],
day = +parts[1],
year = parseInt("20"+parts[2]); // remove "20"+ if not needed
注意在此fiddle如何moment.js不喜欢2位数年份
弃用警告:提供的值不是采用公认的RFC2822或ISO格式。时刻构造会回落到js Date(),这在所有浏览器和版本中都不可靠。非RFC2822/ISO日期格式不鼓励,将在即将到来的主要版本中删除。
dateString.split( “/”)[MDN String.split](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/splitk) – mplungjan
JavaScript的有一个Date对象:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date –
@ Matt.C - 在这里似乎不需要 – mplungjan