កាលបរិច្ឆេទ

មេរៀន​នេះ មាន​ជា​វីដេអូ ។

មេរៀន​ជា​វីដេអូ

Date() constructor មាន​នាទី​បង្កើត object ដែល​ក្ដោបក្ដាប់​កាល​បរិច្ឆេទ ។

a.innerHTML = new Date();
<div id="a"></div>

បង្កើត​កាលបរិច្ឆេទ

ដើម្បី​បាន​នូវ object មួយ​ដែល​ក្ដោបក្ដាប់​កាលបរិច្ឆេទ យើង​ត្រូវ​ប្រើ Date() ។

ទម្រង់​នៃ Date()
  • បើ​មិន​សរសេរ​អ្វី​ក្នុង​វង់​ក្រចក វា​នឹង​ចាប់​យក​កាល​បរិច្ឆេទ​បច្ចុប្បន្ន ។
  • បើ​សរសេរ​អក្សរ​នៅ​ក្នុង​វង់​ក្រចក វា​នឹង​បង្កើត​កាល​បរិច្ឆេទ​ទៅ​តាម​អក្សរ​ទាំងនោះ ។
  • បើ​សរសេរ​លេខ​នៅ​ក្នុង​វង់​ក្រចក វា​នឹង​បង្កើត​កាលបរិច្ឆេទ​ទៅ​តាម​លេខ​នោះ ដែល​លេខ​នោះ​គឺគិត​ជា​មីលីវិនាទី រាប់​ចាប់​ពី​ថ្ងៃ​ទី០១ ខែ​មករា ឆ្នាំ​១៩៧០ ។
a.innerHTML = new Date();
b.innerHTML = new Date("01 January 2017 07:00:00 GMT+07:00");
c.innerHTML = new Date(1486950300000);
កាល​បរិច្ឆេទ​បច្ចុប្បន្ន <span id="a"></span><hr>
KHODE ត្រូវ​បាន​ផ្សព្វផ្សាយ​ជា​ផ្លូវ​ការ​នៅ​ថ្ងៃ​ទី <span id="b"></span><hr>
មេរៀន Javascript ត្រូវ​បាន​បង្ហោះ​នៅ​ថ្ងៃ​ទី <span id="c"></span>

ចាប់​យក​ផ្នែក​ណាមួយ​នៃ​កាលបរិច្ឆេទ

មាន method ជា​ច្រើន ដែល​ប្រើ​សំរាប់​ចាប់​យក​ផ្នែកណាមួយ​នៃ​កាលបរិច្ឆេទ ។

var lists = list.querySelectorAll('tr');

//បង្កើត option នៅ​ក្នុង select id method
for (var i = 0, n = lists.length; i < n; i++) {
    var option = document.createElement("option");
    option.innerHTML = lists[i].children[0].innerHTML;
    method.appendChild(option);
}

//បង្កើត function main មាន​នាទី​បង្ហាញ​ចម្លើយ
function main() {
    var d = new Date();
    var currentMethod = method.value.slice(0, -2);
    var currentMethodIndex = method.selectedIndex;
    full.innerHTML = d;
    result.innerHTML = d[currentMethod]();
    text.innerHTML = lists[currentMethodIndex].innerHTML;
}

main();
method.onchange = main;
<code>
var currentDate = new Date();<br>
var test = currentDate.<select id="method"></select>;
</code>
<p>អញ្ញាត currentDate មាន​តម្លៃ <span id="full"></span> ។<br>
អញ្ញាត test មាន​តម្លៃ <span id="result"></span> ។</p>
<hr>

<h3>បម្រើបម្រាស់</h3>

<p id="text"></p>

<table id="list" style="display:none;">
    <tr><td>getFullYear()</td> <td>ចាប់​យក​ឆ្នាំ តម្លៃ​ជា​លេខ​៤​ខ្ទង់ ។</tr>
    <tr><td>getMonth()</td> <td>ចាប់​យក​ខែ តម្លៃ ០ ដល់ ១១ ។ ០ គឺ​ខែ​មករា, ១ គឺ​ខែ​កុម្ភៈ រហូត​ដល់ ១១ គឺ​ខែ​ធ្នូ ។</tr>
    <tr><td>getDate()</td> <td>ចាប់​យក​ថ្ងៃ​ទី តម្លៃ ០ ទៅ ៣១ ។</tr>
    <tr><td>getDay()</td> <td>ចាប់​យក​ថ្ងៃ តម្លៃ ០ ទៅ ៦ ។ ០ គឺថ្ងៃ​អាទិត្យ, ១ គឺថ្ងៃ​ច័ន្ទ រហូត​ដល់​លេខ ៦ គឺ​ថ្ងៃ​សៅរ៍ ។</tr>
    <tr><td>getHours()</td> <td>ចាប់​យក​ម៉ោង តម្លៃ ០ ដល់ ២៣ ។</tr>
    <tr><td>getMinutes()</td> <td>ចាប់​យក​នាទី តម្លៃ ០ ដល់ ៥៩ ។</tr>
    <tr><td>getSeconds()</td> <td>ចាប់​យក​វិនាទី តម្លៃ ០ ដល់ ៥៩ ។</tr>
    <tr><td>getMiltrseconds()</td> <td>ចាប់​យក​មីលីវិនាទី តម្លៃ ០ ដល់ ៩៩៩ ។</tr>
    <tr><td>getTime()</td> <td>ចាប់​យក​មីលីវិនាទី ចាប់​ពី​ថ្ងៃ​ទី ១ ខែ​មករា ឆ្នាំ​១៩៧០ រហូត​មក ។</tr>
</table>
code {
    display: block;
    font-size: 1.2em;
    border-bottom: 1px solid gray;
    padding: 10px;
    line-height: 1.5em;
}
#method { font-family: monospace; font-size: inherit; }
#full,
#result,
#text :nth-child(1) { font-weight: bold; }

កែ​សម្រួល​កាល​បរិច្ឆេទ

ដោយ​ប្រើ method មួយ​ចំនួន​នៃ date object យើង​អាច​កែ​តម្រូវ​កាលបរិច្ឆេទ​ដែល​បាន​បង្កើត​ហើយ ។

var date = document.getElementById("date");
var result = document.getElementById("result");

//បង្កើត function សំរាប់​បង្កើត option ជា​លេខ ដាក់​ក្នុង select
function createNumOption(num1, num2, select) {
    for (var i = num1; i < num2 + 1; i++) {
        var option = document.createElement("option");
        option.innerHTML = i;
        select.appendChild(option);
    }
}
createNumOption(1, 31, date.Date);
createNumOption(0, 11, date.Month);
createNumOption(0, 23, date.Hours);
createNumOption(0, 59, date.Minutes);
createNumOption(0, 59, date.Seconds);
createNumOption(0, 999, date.Milliseconds);

//មុខងារ​បង្ហាញ​ចម្លើយ
function main() {
    var d = new Date();
    for (var i = 0, n = date.children.length; i < n; i++) {
        if (typeof date.children[i].name != "undefined") {
            var method = "set" + date.children[i].name;
            var value = Number(date.children[i].value);
            d[method](value);
            result.innerHTML = d;
        }
    }
}
main();
date.oninput = main;

//ខាងក្រោម​នេះ គឺ​សំរាប់ date2
var time = document.getElementById("time");
function main2() {
    var d = new Date();
    var t = time.valueAsNumber;
    d.setTime(t);
    document.getElementById("result2").innerHTML = d;
}
main2();
time.oninput = main2;
<form id="date">
    var date = new Date();<br>
    date.setDate(<select name="Date"></select>);<br>
    date.setMonth(<select name="Month"></select>);<br>
    date.setFullYear(<input name="FullYear" type="number" min="0" value="2017">);<br>
    date.setHours(<select name="Hours"></select>);<br>
    date.setMinutes(<select name="Minutes"></select>);<br>
    date.setSeconds(<select name="Seconds"></select>);<br>
    date.setMilliseconds(<select name="Milliseconds"></select>);<br>
</form>
<p>អញ្ញាត date មាន​តម្លៃ <span id="result"></span></p>
<hr><hr>
<form>
    var date = new Date();<br>
    date.setTime(<input type="number" id="time" value="0" step="1000">);
</form>
<p>អញ្ញាត date2 មាន​តម្លៃ <span id="result2"></span></p>
<p style="background:yellow">(method setTime ប្រើ​សំរាប់​កំណត់​កាល​បរិច្ឆេទ​តាម​<b>មីលីវិនាទី</b> រាប់​ចាប់​ពី​ថ្ងៃ​ទី១ ខែ​មករា ឆ្នាំ​១៩៧០)</p>form {
    display: block;
    font-size: 1.2em;
    padding: 10px;
    line-height: 1.5em;
    font-family: monospace;
}
span {
    font-family: sans-serif;
    font-weight: bold;
}

ទម្រង់​នៃ​កាល​បរិច្ឆេទ

កំណត់​ជា​លេខ

ចំណុច​ដែល​ត្រូវ​ចង់​ចាំ
  • ថ្ងៃ​ខែ អាច​សរសេរ​តាម​ទម្រង់ ឆ្នាំ-ខែ-ថ្ងៃ ឬ ខែ/ថ្ងៃ/ឆ្នាំ
  • បើ​កំណត់​ម៉ោង ត្រូវ​ផ្ដើម​ដោយ​អក្សរ T
  • ម៉ោង នាទី វិនាទី ត្រូវ​ផ្ដាច់​គ្នា​ដោយ​សញ្ញា :
  • ដើម្បី​បញ្ជាក់​ល្វែង​ម៉ោង
    • ​ប្រើ​អក្សរ Z សំរាប់​ប្រាប់​ថា កាល​បរិច្ឆេទ​នោះ គឺ​ស្ថិតក្នុង​ល្វែង​ម៉ោង​សកល
    • ​កំណត់​ល្វែង​ម៉ោង ។ ឧទាហរណ៍ ល្វែង​ម៉ោង​នៅ​កម្ពុជា​គឺ +07:00
new Date("2017");
new Date("2017-01");
new Date("2017-01-01"); // ឆ្នាំ ខែ ថ្ងៃ
new Date("01/01/2017"); // ខែ ថ្ងៃ ឆ្នាំ
new Date("01/01/2017T08:45:00Z");
new Date("2017-01-01T08:45:00+07:00"); // ទម្រង់ ISO 8601

កុំ​ធ្វើ​ឲ្យ​ខុស​ពី​ចំណុច​ខាងលើ ព្រោះ​វា​អាច​នឹង​មាន​បញ្ហា នៅ​លើ​កម្មវិធីមួយ​ចំនួន ។

កំណត់​ជា​អក្សរ

ចំណុច​ដែល​ត្រូវ​ចង់​ចាំ
  • កំណត់​ថ្ងៃ​ខុស​ក៏​មិន​បញ្ហា​ដែរ ព្រោះ Javascript នឹង​កំណត់​ថ្ងៃ​ដោយ​ស្វ័យ​ប្រវត្តិ​ទៅ​តាម​ទី
  • ខែ​អាច​សរសេរ​ជា​អក្សរ​កាត់​៣​តួ ឬ​អក្សរ​ពេញ
  • សរសេរ​ខែ​ជា​អក្សរ​តូច ឬ​ធំ មិន​ផ្ដល់​ជា​បញ្ហា​ទេ
  • ការ​ដក​ឃ្លា ឬ​សញ្ញា "," ត្រូវ​បាន​ប្រើ​សំរាប់​ផ្ដាច់​គ្នា​រវាង​ថ្ងៃ ខែ និង​ឆ្នាំ (សញ្ញា​ផ្សេង​ពី​នេះ​ក៏​អាច​ប្រើ​បាន​ដែរ តែ​មិន​ដំណើរការ​គ្រប់​កម្មវិធី​ទេ) ។
new Date("jan 01");
new Date("01, jAnUary, 2017");
new Date("2017 Jan 01 08:45:00 GMT+07:00");

ទម្រង់​កាល​បរិច្ឆេទ​ដែល​ធានា​លទ្ធផល​លើ​គ្រប់​កម្មវិធី​គឺ​ទម្រង់ ISO 8601 ។

បម្លែង​កាលបរិច្ឆេទ

បើ​មាន​អត្ថបទ​ណា​ដែល​មាន​ទម្រង់​ជា​កាលបរិច្ឆេទ យើង​អាច​បម្លែង​អត្ថបទ​នោះ​ទៅ​ជា​កាលបរិច្ឆេទ​បាន​ដោយ​ប្រើ parse() នៃ Date ។

var dateText = document.getElementById("d").innerHTML;
var dateMilliseconds = Date.parse(dateText);
var date = new Date(dateMilliseconds);
document.getElementById("result").innerHTML = date;
<p>នេះ​ជា​ថ្ងៃ​ខែ <span id="d">13 March 2017 08:45:00</span> ។</p>
<p>បន្ទាប់​ពី​បម្លែង នេះ​ជា​លទ្ធផល <span id="result"></span></p>
ទំព៏រ​ដើម កូដ វីដេអូ បញ្ជី ចែករំលែក បោះពុម្ភ ឡើង​លើ Facebook Google Plus Twitter មតិ ឧបត្ថម្ភ ទំនាក់ទំនង អាជ្ញាប័ណ្ឌ សិទ្ធ​អ្នក​និពន្ធ បិទ Khode Academy មុន បន្ទាប់ ប្ដូរ​ម៉ូត