我負責爲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