ØØ§Ù ÙÙØª Ø§ÙØØ¯ÙØ« Ø¹Ù ÙØ§Ø¦Ù آخر Ù
ضÙ
ÙÙ Ù٠اÙÙØºØ©: Ø§ÙØªØ§Ø±ÙØ® Date. ÙØ®Ø²ÙÙ ÙØ°Ø§ اÙÙØ§Ø¦Ù Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙÙÙØª ÙÙÙØ¯ÙÙ
ØªÙØ§Ø¨Ùع ØªÙØ¯Ùر أختاÙ
Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙÙÙØª. ÙÙ
ÙÙÙØ§ Ù
Ø«ÙÙØ§ استعÙ
اÙÙ ÙØªØ®Ø²Ù٠أÙÙØ§Øª Ø§ÙØ¥Ùشاء/Ø§ÙØªØ¹Ø¯ÙÙ Ø£Ù ØØ³Ø§Ø¨ اÙÙÙØª أ٠طباعة Ø§ÙØªØ§Ø±ÙØ® Ø§ÙØØ§ÙÙ ÙÙ Ø§ÙØ·Ø±ÙÙØ©.
Ø§ÙØ¥Ùشاء
استدع٠new Date()â Ø¨ØªÙ
Ø±ÙØ± ÙØ§ØØ¯Ùا Ù
٠اÙÙÙØ³Ø·Ø§Ø¡ Ø§ÙØ¢ØªÙØ© ÙØªØµÙع ÙØ§Ø¦Ù Date Ø¬Ø¯ÙØ¯:
new Date()- Ø¨ÙØ§ ÙÙØ³Ø·Ø§Ø¡: ÙÙÙØ´Ø¦ ÙØ§Ø¦Ù
DateØ¨Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙÙÙØª Ø§ÙØØ§ÙÙÙÙ
let now = new Date();
alert( now ); // ÙØ¹Ø±Ø¶ Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙÙÙØª Ø§ÙØØ§ÙÙÙÙ
Ø¥ÙÙÙ ÙÙÙÙØ© Ø¥ÙØ´Ø§Ø¡ ÙØ§Ø¦Ù Date:
new Date(milliseconds)â
ÙÙÙØ´Ø¦ ÙØ§Ø¦Ù Date إذ تساÙÙ ÙÙÙ
ت٠عدد اÙÙ
ÙÙØ«Ùا٠اÙÙ
Ù
Ø±ÙØ±Ø© (اÙÙ
ÙÙØ«Ø§ÙÙØ© ÙÙ 1/1000 Ù
Ù Ø§ÙØ«Ø§ÙÙ) ØØ³Ø§Ø¨Ùا Ù
٠بعد Ø§ÙØ£ÙÙ Ù
Ù ÙÙØ§Ùر عاÙ
١٩٧٠بتÙÙÙØª UTC+0.
// UTC+0
// 01.01.1970 ÙØ¹Ù٠ب٠0 Ø§ÙØªØ§Ø±ÙØ®
let Jan01_1970 = new Date(0);
alert( Jan01_1970 );
// ÙØ¶ÙÙ Ø§ÙØ¢Ù 24 ساعة ÙÙØØµÙ Ø¹ÙÙ 02.01.1970
let Jan02_1970 = new Date(24 * 3600 * 1000);
alert( Jan02_1970 );
ÙÙØ³Ù
ÙÙ Ø§ÙØ¹Ø¯Ø¯ Ø§ÙØµØÙØ Ø§ÙØ°Ù ÙÙ
Ø«Ù٠عدد اÙÙ
ÙÙØ«ÙØ§Ù Ø§ÙØªÙ Ù
Ø±ÙØª Ù
Ù Ø¨Ø¯Ø§ÙØ© عاÙ
1970 Ø¨Ø§ÙØ®ØªÙ
Ø§ÙØ²Ù
ÙÙ (بصÙ
Ø© ÙÙØª). ÙÙÙ ÙÙ
Ø«ÙÙ Ø§ÙØªØ§Ø±ÙØ® Ø¨ÙØÙ٠عدد٠خÙÙÙ (lightweight). ÙÙ
ÙÙÙØ§ Ø¥ÙØ´Ø§Ø¡ Ø§ÙØªÙØ§Ø±ÙØ® Ù
Ù Ø§ÙØ£Ø®ØªØ§Ù
Ø§ÙØ²Ù
ÙÙØ© باستعÙ
ا٠new Date(timestamp)â ÙØªØÙÙÙ ÙØ§Ø¦Ù Ø§ÙØªØ§Ø±ÙØ® Date اÙÙ
ÙØ¬Ùد Ø¥Ù٠ختÙ
زÙ
Ù٠باستعÙ
Ø§Ù Ø§ÙØªØ§Ø¨Ùع date.getTime()â (Ø·Ø§ÙØ¹ أسÙÙÙ).
ÙØ§ÙØªÙØ§Ø±ÙØ® ÙØ¨Ù Ø§ÙØ£ÙÙ Ù Ù ÙÙØ§Ùر 1970 Ø£Ø®ØªØ§Ù ÙØ§ Ø³Ø§ÙØ¨Ø©:
// â«31 Ø¯ÙØ³Ù
بر 1969
let Dec31_1969 = new Date(-24 * 3600 * 1000);
alert( Dec31_1969 );
new Date(datestring)â
ÙÙ ÙØ§Ù ÙÙØ§Ù ÙØ³ÙØ· ÙØ§ØØ¯ ÙÙØ§Ù Ø³ÙØ³ÙØ© ÙØµÙÙØ©Ø ÙØ³ÙØÙÙÙ٠اÙÙ
ØØ±Ù٠تÙÙØ§Ø¦ÙÙØ§. Ø§ÙØ®ÙازرÙ
ÙØ© ÙÙØ§ Ù٠ذات Ø§ÙØªÙ ÙØ³ØªØ¹Ù
ÙÙØ§ Date.parse. ÙØ§ تÙÙÙØ Ø³ÙØªÙÙÙ
عÙÙ ÙØ§ØÙÙØ§.
let date = new Date("2017-01-26");
alert(date);
ÙØ¬Ø¯ ÙÙ ÙØ°Ø§ اÙ٠ثا٠أ٠اÙÙÙØª ØºÙØ± Ù ØØ¯Ø¯ ÙØ°Ø§ ÙÙÙ٠بتÙÙÙØª GMT Ù ÙØªØµÙ اÙÙÙÙØ ÙÙØØ¯Ø¯ ÙÙÙÙØ§ ÙÙÙ ÙØ·ÙØ© Ø§ÙØ²Ù ÙÙØ© Ø§ÙØªÙ تÙÙØ° Ø§ÙØ´ÙÙØ±Ø© ض٠ÙÙØ§Ø ÙØ§ÙÙØªÙجة ÙÙ Ù٠أ٠تÙÙÙ Thu Jan 26 2017 11:00:00 ÙÙØ¨Ùدا٠ذات اÙÙ ÙØ·ÙØ© Ø§ÙØ²Ù ÙÙØ© GMT+1100 Ø£Ù ÙÙ Ù٠أ٠تÙÙÙ Wed Jan 25 2017 16:00:00 ÙÙØ¨Ùدا٠اÙÙØ§Ùعة Ù٠اÙÙ ÙØ·ÙØ© Ø§ÙØ²Ù ÙÙØ© GMT-0800.
new Date(year, month, date, hours, minutes, seconds, ms)â
ÙÙÙØ´Ø¦ ØªØ§Ø±ÙØ®Ùا باÙÙ
ÙÙÙÙØ§Øª اÙÙ
Ù
Ø±ÙØ±Ø© ØØ³Ø¨ اÙÙ
ÙØ·ÙØ© Ø§ÙØ²Ù
ÙÙØ© اÙÙ
ØÙÙØ©. Ø£ÙÙÙ ÙØ³ÙØ·ÙÙ Ø¥ÙØ²Ø§Ù
ÙÙ٠أÙ
ا Ø§ÙØ¨ÙÙØ© Ø§Ø®ØªÙØ§Ø±ÙØ©.
ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ Ø§ÙØ¹Ø§Ù
year بأربع Ø®Ø§ÙØ§Øª: 2013 ØµØØ 98 خطأ.
ÙØ¨Ø¯Ø£ Ø§ÙØ´Ùر month Ø¨Ø§ÙØ±ÙÙ
0 (ÙÙØ§Ùر) ÙÙÙØªÙÙ Ø¨Ø§ÙØ¹Ø¯Ø¯ 11 (Ø¯ÙØ³Ù
بر).
Ù
ÙØ¹Ø§Ù
Ù Ø§ÙØªØ§Ø±ÙØ® date Ù٠رÙÙ
اÙÙÙÙ
Ù
Ù Ø§ÙØ´Ùر. ÙÙ ÙÙ
ÙÙÙ Ù
ÙØ¬ÙØ¯ÙØ§ ÙØ³ÙعدÙ٠اÙÙØ§Ø¦Ù 1.
ÙÙ ÙÙ
تÙÙ Ù
ÙØ¹Ø§Ù
ÙØ§Øª Ø§ÙØ³Ø§Ø¹Ø© ÙØ§ÙدÙÙÙØ© ÙØ§ÙثاÙÙØ© ÙØ§ÙÙ
ÙÙØ«Ø§ÙÙØ© hours/minutes/seconds/ms Ù
ÙØ¬ÙØ¯Ø©Ø ÙØ³ÙعدÙÙØ§ اÙÙØ§Ø¦Ù 0.
٠ثاÙ:
new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00
new Date(2011, 0, 1); // ÙÙØ³ تÙÙ. Ø§ÙØ³Ø§Ø¹Ø§Øª ÙØ§ÙØ¯ÙØ§Ø¦Ù ÙØºÙØ±ÙØ§ 0 Ù
بدئÙÙØ§
The maximal precision is 1 ms (1/1000 sec):
أدÙ٠دÙÙØ© ÙÙØªØ§Ø±ÙØ® ÙÙ Ù
ÙÙØ«Ø§ÙÙØ© ÙØ§ØØ¯Ø© (ÙØ§ØØ¯ Ù
٠أÙÙ Ù
Ù Ø§ÙØ«Ø§ÙÙØ©):
let date = new Date(2011, 0, 1, 2, 3, 4, 567);
alert( date ); // 1.01.2011, 02:03:04.567
اÙÙØµÙ٠إÙÙ Ù ÙÙÙÙØ§Øª Ø§ÙØªØ§Ø±ÙØ®
Ø¥ÙÙÙ Ø§ÙØªÙØ§Ø¨ÙØ¹ Ø§ÙØªÙ ØªØªÙØ Ù٠اÙÙØµÙ٠إÙÙ Ø§ÙØ¹Ø§Ù
ÙØ§ÙØ´ÙØ± ÙØºÙØ±ÙØ§ Ø¯Ø§Ø®Ù ÙØ§Ø¦Ù Date:
-
getFullYear()â: ÙØ¬Ùب Ø§ÙØ¹Ø§Ù (Ù¤ Ø®Ø§ÙØ§Øª)
-
getMonth()â: ÙØ¬Ùب Ø§ÙØ´ÙØ±Ø Ù Ù 0 Ø¥ÙÙ 11.
-
getDate()â: ÙØ¬Ùب رÙ٠اÙÙÙÙ Ù Ù Ø§ÙØ´ÙØ±Ø Ù Ù 1 Ø¥ÙÙ 31. ÙØ¯ ÙØ¨Ø¯Ù Ø§ÙØ§Ø³Ù ØºØ±ÙØ¨Ùا ÙÙÙÙÙØ§ ÙÙ.
-
- Ø§ÙØªÙابع getHours()â ÙgetMinutes()â ÙgetSeconds()â ÙgetMilliseconds()â
- ØªØ¬ÙØ¨ Ù ÙÙÙÙØ§Øª اÙÙÙØª ØØ³Ø¨ ÙÙ ØªØ§Ø¨ÙØ¹. (Ø§ÙØ³Ø§Ø¹Ø©/Ø§ÙØ¯ÙÙÙØ©/Ø§ÙØ«Ø§ÙÙØ©/اÙÙ ÙÙØ«Ø§ÙÙØ©)
Ø¥ÙØ§Ù ب٠getYear()â Ø¨Ù getFullYear()â
ØªÙØ¯ÙÙ
اÙÙØ«Ùر Ù
Ù Ù
ØØ±ÙÙØ§Øª Ø¬Ø§ÙØ§ Ø³ÙØ±Ùبت Ø§ÙØªØ§Ø¨Ùع ØºÙØ± اÙÙÙØ§Ø³Ù getYear()â. ÙØ°Ø§ Ø§ÙØªØ§Ø¨Ùع Ø£ØµØ¨Ø Ø¨Ø§Ø¦Ø¯ÙØ§Ø ÙÙÙ ÙÙØ¹Ùد Ø§ÙØ¹Ø§Ù
Ø¨Ø®Ø§ÙØªÙ٠أØÙاÙÙØ§. Ù
Ù ÙØ¶ÙÙ ÙØ§ تستعÙ
ÙÙ Ø£Ø¨Ø¯ÙØ§Ø ب٠getFullYear()â ÙØªØ¬Ùب Ø§ÙØ¹Ø§Ù
.
Ù٠ا ÙÙ ÙÙ Ø£ÙØ¶Ùا Ø¬ÙØ¨ رÙ٠اÙÙÙÙ Ù Ù Ø§ÙØ´Ùر:
getDay()â
ÙØ¬Ùب رÙÙ
اÙÙÙÙ
Ù
Ù Ø§ÙØ£Ø³Ø¨ÙØ¹Ø Ø¨Ø¯Ø¡ÙØ§ بÙÙ 0 (Ø§ÙØ£ØØ¯) ÙØØªÙ 6 (Ø§ÙØ³Ø¨Øª). Ø£ÙÙÙ ÙÙÙ
ÙÙ Ø§ÙØ£ØØ¯ دÙÙ
ÙØ§. صØÙØ Ø£ÙÙ Ù٠بعض Ø§ÙØ¯ÙÙ ÙØ°Ø§ ØºÙØ± صØÙØØ ÙÙÙ ÙØ§ ÙÙ
Ù٠تغÙÙØ± اÙÙÙÙ
Ø© Ø¥Ø·ÙØ§ÙÙØ§.
ØªÙØ¹Ùد ÙÙÙ Ø§ÙØªÙØ§Ø¨ÙØ¹ Ø£Ø¹ÙØ§Ù اÙÙ ÙÙÙÙØ§Øª ØØ³Ø¨ اÙÙ ÙØ·ÙØ© Ø§ÙØ²Ù ÙÙØ© اÙÙ ØÙÙØ©.
ØªÙØ¬Ø¯ Ø£ÙØ¶Ùا Ù
Ø«ÙÙØ§ØªÙا Ø¨ÙØ¸Ø§Ù
UTC ØÙØ« ØªÙØ¹Ùد اÙÙÙÙ
ÙØ§ÙØ´ÙØ± ÙØ§ÙعاÙ
ÙØºÙØ±ÙØ§ Ù٠اÙÙ
ÙØ·ÙØ© Ø§ÙØ²Ù
ÙÙØ© UTF+0:â getUTCFullYear()â ÙgetUTCMonth()â ÙgetUTCDay()â. ضع ÙÙÙ
Ø© "UTC" بعد "get" ÙØ³ØªØ¬Ø¯ اÙÙ
Ø«Ù٠اÙÙ
ÙØ§Ø³Ø¨.
ÙÙ ÙØ§Ùت Ù ÙØ·ÙØªÙ Ø§ÙØ²Ù ÙÙØ© اÙÙ ØÙÙØ© Ø¨Ø¹ÙØ¯Ø© ع٠UTCØ ÙØ³ØªØ¹Ø±Ø¶ Ø§ÙØ´ÙÙØ±Ø© Ø£Ø¯ÙØ§Ù Ø§ÙØ³Ø§Ø¹Ø§Øª ٠ختÙÙØ© Ø¹Ù Ø¨Ø¹Ø¶ÙØ§ Ø§ÙØ¨Ø¹Ø¶:
// Ø§ÙØªØ§Ø±ÙØ® Ø§ÙØØ§ÙÙ
let date = new Date();
// Ø§ÙØ³Ø§Ø¹Ø© ØØ³Ø¨ اÙÙ
ÙØ·ÙØ© Ø§ÙØ²Ù
ÙÙØ© Ø§ÙØªÙ Ø£ÙØª ÙÙÙØ§
alert( date.getHours() );
// â«Ø§Ùساعة ØØ³Ø¨ اÙÙ
ÙØ·ÙØ© Ø§ÙØ²Ù
ÙÙØ© بتÙÙÙØª UTC+0 (أ٠تÙÙÙØª ÙÙØ¯Ù بدÙÙ Ø§ÙØªÙÙÙØª Ø§ÙØµÙÙÙ)
alert( date.getUTCHours() );
ÙÙØ§Ù (Ø¥Ø¶Ø§ÙØ©Ù Ø¥ÙÙ ÙØ°Ù Ø§ÙØªÙØ§Ø¨ÙØ¹) ØªØ§Ø¨ÙØ¹Ø§Ù آخرا٠٠ختÙÙØ§Ù ÙÙÙÙÙØ§ ÙÙØ³ ÙÙ٠ا ÙÙØ³Ø® بتÙÙÙØª UTC:
getTime()â ÙÙØ¹Ùد Ø®ØªÙ Ø§ÙØªØ§Ø±ÙØ® Ø§ÙØ²Ù ÙÙØ أ٠عدد اÙÙ ÙÙØ«ÙØ§Ù Ø§ÙØªÙ Ù Ø±ÙØª Ù ÙØ° Ø§ÙØ£ÙÙ Ù Ù ÙÙØ§Ùر عا٠1970 بتÙÙÙØª UTC+0.
getTimezoneOffset()â ÙÙØ¹Ùد اÙÙØ±Ù بÙ٠اÙÙ ÙØ·ÙØ© Ø§ÙØ²Ù ÙÙØ© Ø§ÙØØ§ÙÙØ© ÙØªÙÙÙØª UTC (Ø¨Ø§ÙØ¯ÙÙÙØ©):
// â«ÙÙ ÙØ§Ùت Ù
ÙØ·ÙØªÙ Ø§ÙØ²Ù
ÙÙØ© UTC-1Ø ÙØ§ÙÙØ§ØªØ¬ 60
// ÙÙ ÙØ§Ùت Ù
ÙØ·ÙØªÙ Ø§ÙØ²Ù
ÙÙØ© â«UTC+3Ø ÙØ§ÙÙØ§ØªØ¬ â-180
alert( new Date().getTimezoneOffset() );
ضبط Ù ÙÙÙÙØ§Øª Ø§ÙØªØ§Ø±ÙØ®
ØªØªÙØ ÙÙ Ø§ÙØªÙØ§Ø¨ÙØ¹ Ø§ÙØ¢ØªÙØ© ضبط Ù ÙÙÙÙØ§Øª Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙÙÙØª:
- Ø§ÙØ¹Ø§Ù
:
setFullYear(year, [month], [date])â - Ø§ÙØ´Ùر:
setMonth(month, [date])â - Ø§ÙØªØ§Ø±ÙØ®:
setDate(date)â - Ø§ÙØ³Ø§Ø¹Ø©:
setHours(hour, [min], [sec], [ms])â - Ø§ÙØ¯ÙÙÙØ©:
setMinutes(min, [sec], [ms])â - Ø§ÙØ«Ø§ÙÙØ©:
setSeconds(sec, [ms])â - اÙÙ
ÙÙØ«Ø§ÙÙØ©:
setMilliseconds(ms)â - اÙÙÙØª باÙÙ
ÙÙØ«Ø§ÙÙØ©:
setTime(milliseconds)â(تضبط Ø§ÙØªØ§Ø±ÙØ® ÙÙÙÙ ØØ³Ø¨ عدد اÙÙ ÙÙØ«ÙØ§Ù Ù ÙØ° 01.01.1970 UTC)
ÙØ¯Ù ÙÙ٠تابع Ù
ÙÙØ§ ÙØ³Ø®Ø© بتÙÙÙØª UTC (عدا setTime()â). Ù
ثاÙ: setUTCHours()â.
ÙÙ
ا Ø±Ø£ÙØª ÙÙÙ
ÙÙ ÙØ¨Ø¹Ø¶ Ø§ÙØªÙØ§Ø¨ÙØ¹ ضبط Ø¹Ø¯ÙØ© Ù
ÙÙÙÙØ§Øª ÙÙ Ø¢Ù ÙØ§ØØ¯ Ù
ث٠setHours. اÙÙ
ÙÙÙÙØ§Øª Ø§ÙØªÙ ÙØ§ تÙÙ
Ø±ÙØ± ÙØ§ ØªÙØ¹Ø¯ÙÙ.
٠ثاÙ:
let today = new Date();
today.setHours(0);
alert(today); // Ù
ا زا٠اÙÙÙÙ
ÙÙØ³ÙØ ÙÙÙÙ Ø§ÙØ³Ø§Ø¹Ø© تغÙÙØ±Øª Ø¥ÙÙ 0
today.setHours(0, 0, 0, 0);
alert(today); // Ù
ا زا٠اÙÙÙÙ
ÙÙØ³ÙØ ÙÙÙÙÙØ§ Ø¹ÙØ¯ 00:00:00 تÙ
اÙ
ÙØ§.
Ø§ÙØªØµØÙØ Ø§ÙØªÙÙØ§Ø¦Ù
Ù
ÙØ²Ø© Ø§ÙØªØµØÙØ Ø§ÙØªÙÙØ§Ø¦Ù ÙÙ ÙØ§Ø¦Ùات Ø§ÙØªÙØ§Ø±ÙØ® Date Ù
ÙÙØ¯Ø© Ø¬Ø¯ÙØ§ ÙÙØ§Ø إذ ÙÙ
ÙÙ Ø£Ù ÙØ¶Ø¹ ÙÙÙ
ØªØ§Ø±ÙØ® ÙØ§Ù
ÙØ·ÙÙØ© (Ù
Ø«Ù Ø§ÙØ®Ù
سÙÙ Ù
Ù ÙØ°Ø§ Ø§ÙØ´Ùر) ÙØ³ÙÙØ¹Ø¯ÙÙÙØ§ اÙÙØ§Ø¦Ù بÙÙØ³Ù.
٠ثاÙ:
let date = new Date(2013, 0, 32); // â«Ø§ÙثاÙÙ ÙØ§ÙØ«ÙØ§Ø«ÙÙ Ù
Ù ÙÙØ§Ùر 2013Ø!
alert(date); // â«...Ø¢ÙØ ØªÙØµØ¯ Ø§ÙØ£ÙÙ Ù
Ù ÙØ¨Ø±Ø§Ùر 2013!
ØªØªØ±ØªÙØ¨ اÙÙ
ÙÙÙÙØ§Øª اÙÙØ§Ù
ÙØ·ÙÙØ© تÙÙØ§Ø¦ÙÙØ§. ÙÙ
Ø«ÙÙØ§ ÙÙ Ø£Ø¶ÙØª عÙÙ Ø§ÙØªØ§Ø±ÙØ® â28 ÙØ¨Ø±Ø§Ùر 2016â ÙÙÙ
Ù٠اثÙÙÙØ ÙÙÙ
Ù٠أ٠ÙÙÙÙ âØ§ÙØ«Ø§ÙÙ Ù
Ù Ù
Ø§Ø±Ø³â Ø£Ù âØ§ÙØ£ÙÙ Ù
Ù Ù
ارسâ ÙÙ ÙØ§Ùت Ø§ÙØ³ÙØ© ÙØ¨Ùسة. بد٠أ٠ÙÙÙÙØ± Ø¨ÙØ°Ø§ Ø§ÙØØ³Ø§Ø¨Ø ÙÙØ¶ÙÙ ÙÙÙ
ÙÙ ÙÙØªØ±Ù Ø§ÙØ¨Ø§Ù٠عÙÙ ÙØ§Ø¦Ù Date:
let date = new Date(2016, 1, 28);
date.setDate(date.getDate() + 2);
alert( date ); // â«1 Ù
ارس 2016
ØºØ§ÙØ¨Ùا ٠ا ØªÙØ³ØªØ¹Ù Ù ÙØ°Ù اÙÙ ÙØ²Ø© ÙÙØ¬Ùب Ø§ÙØªØ§Ø±ÙØ® بعد ÙØªØ±Ø© Ù ØØ¯Ùدة Ù Ù Ø§ÙØ²Ù Ù. ÙÙÙÙÙ Ù Ø«ÙÙØ§ ÙØ±Ùد ØªØ§Ø±ÙØ® â70 ثاÙÙØ© Ù Ù Ø§ÙØ¢Ùâ:
let date = new Date();
date.setSeconds(date.getSeconds() + 70);
alert( date ); // ÙØ¹Ø±Ø¶ Ø§ÙØªØ§Ø±ÙØ® Ø§ÙØµØÙØ
ÙÙ ÙÙÙØ§ Ø£ÙØ¶Ùا ضبط اÙÙÙÙ Ø© ÙØªÙÙÙ ØµÙØ±Ùا Ø£Ù ØØªÙÙ Ø¨Ø§ÙØ³Ø§Ùب. ٠ثاÙ:
let date = new Date(2016, 0, 2); // â«2 ÙÙØ§Ùر 2016
date.setDate(1); // ÙØ¶Ø¨Ø· Ø§ÙØªØ§Ø±ÙØ® عÙ٠أÙÙ ÙÙÙ
Ù
Ù Ø§ÙØ´Ùر
alert( date );
date.setDate(0); // Ø£ÙÙ ÙÙÙ
Ù
Ù
ÙÙ ÙÙ 1Ø Ø¥Ø°ÙØ§ ÙÙØ¹Ø¯Ù اÙÙØ§Ø¦Ù Ø£ÙÙ 0 Ù٠آخر ÙÙÙ
Ù
Ù Ø§ÙØ´Ùر اÙÙ
اضÙ
alert( date ); // â«31 Ø¯ÙØ³Ù
بر 2015
تØÙÙÙ Ø§ÙØªØ§Ø±ÙØ® Ø¥ÙÙ Ø¹Ø¯Ø¯Ø ÙØ§ÙÙØ±Ù بÙÙ ØªØ§Ø±ÙØ®ÙÙ
ØÙÙ ÙØªØÙÙÙ ÙØ§Ø¦Ù Date Ø¥Ù٠عدد ÙØµÙر ختÙ
ÙØ§ زÙ
ÙÙÙØ§ Ù
طابÙÙØ§ ÙØ®ØªÙ
date.getTime()â:
let date = new Date();
alert(+date); // â«Ø¹Ø¯Ø¯ اÙÙ
ÙÙØ«ÙØ§ÙØ ÙÙØ³ ÙØ§ØªØ¬ date.getTime()â
ØªØ£Ø«ÙØ± ÙØ°Ø§ اÙÙ ÙÙ ÙØ§ÙØ®Ø·ÙØ± Ù٠أÙÙÙ ØªØ³ØªØ·ÙØ¹ Ø·Ø±Ø Ø§ÙØªÙØ§Ø±ÙØ® Ù Ù Ø¨Ø¹Ø¶Ø ÙØ§ÙÙØ§ØªØ¬ سÙÙÙ٠اÙÙØ±Ù بÙÙÙ٠ا باÙÙ ÙÙØ«Ø§ÙÙØ©. ÙÙ ÙÙ Ø§Ø³ØªØ¹Ù Ø§Ù Ø§ÙØ·Ø±Ø ÙØØ³Ø§Ø¨ Ø§ÙØ£ÙÙØ§Øª:
let start = new Date(); // ÙØ¨Ø¯Ø£ ÙÙØ§Ø³ اÙÙÙØª
// Ø¥ÙÙ Ø§ÙØ¹Ù
Ù
for (let i = 0; i < 100000; i++) {
let doSomething = i * i * i;
}
let end = new Date(); // ÙÙØªÙÙ Ù
Ù ÙÙØ§Ø³ اÙÙÙØª
alert( `The loop took ${end - start} ms` );
Ø§ÙØªØ§Ø±ÙØ® Ø§ÙØ¢Ù
ÙÙ Ø£Ø±Ø¯ÙØ§ ÙÙØ§Ø³ اÙÙÙØª ÙÙØ· ÙÙØ§ ÙØØªØ§Ø¬ ÙØ§Ø¦Ù DateØ Ø¨Ù ÙÙØ§Ù ØªØ§Ø¨ÙØ¹Ùا Ø®Ø§ØµÙØ§ باسÙ
Date.now()â ÙÙØ¹Ùد ÙÙØ§ Ø§ÙØ®ØªÙ
Ø§ÙØ²Ù
ÙÙ Ø§ÙØØ§ÙÙ.
ÙÙÙØ§Ùئ ÙØ°Ø§ Ø§ÙØªØ§Ø¨Ùع Ø§ÙØ¬Ù
ÙØ©Ù new Date().getTime()â Ø¥ÙÙØ§ Ø£ÙÙÙ ÙØ§ ÙÙÙØ´Ø¦ ÙØ§Ø¦Ù Date ÙØªÙØ³ÙØ· Ø§ÙØ¹Ù
ÙÙØ©Ø ÙÙÙØ°Ø§ Ù٠أسرع ÙÙØ§ ÙØ²Ùد Ø§ÙØ¶ØºØ· عÙ٠عÙ
ÙÙØ© ÙÙØ³ اÙÙ
ÙÙ
ÙØ§Øª. ØºØ§ÙØ¨Ùا Ù
ا ÙÙØ³ØªØ¹Ù
Ù Ø§ÙØªØ§Ø¨Ùع ÙØ£ÙÙ٠أسÙÙ Ø£Ù ÙØ£ÙÙ Ø§ÙØ£Ø¯Ø§Ø¡ Ù٠تÙÙ Ø§ÙØØ§ÙØ© Ù
ÙÙ
Ø Ù
Ø«ÙÙ
ا ÙÙ Ø§ÙØ£Ùعاب Ø¨ÙØºØ© Ø¬Ø§ÙØ§ Ø³ÙØ±Ùبت Ø£Ù Ø§ÙØªØ·Ø¨ÙÙØ§Øª اÙÙ
ØªØ®ØµÙØµØ© Ø§ÙØ£Ø®Ø±Ù.
ÙÙÙØ°Ø§ ÙØ¯ ÙÙÙÙ Ø§ÙØ£ÙØ¶Ù ÙØªØ§Ø¨Ø© Ø§ÙØ´ÙÙØ±Ø© Ø£Ø¯ÙØ§Ù بد٠تÙÙ:
let start = Date.now(); // â«ØªØ¨Ø¯Ø£ اÙÙ
ÙÙØ«Ùا٠Ù
Ù ØªØ§Ø±ÙØ® 1 ÙÙØ§Ùر 1970
// Ø¥ÙÙ Ø§ÙØ¹Ù
Ù
for (let i = 0; i < 100000; i++) {
let doSomething = i * i * i;
}
let end = Date.now(); // Ø§ÙØªÙÙÙØ§
alert( `The loop took ${end - start} ms` ); // ÙØ·Ø±Ø Ø§ÙØ£Ø¹Ø¯Ø§Ø¯ ÙØ§ Ø§ÙØªÙØ§Ø±ÙØ®
ÙÙØ§Ø³ Ø§ÙØ£Ø¯Ø§Ø¡
ÙÙ Ø£Ø±Ø¯ÙØ§ ÙÙØ§Ø³ أداء Ø¯Ø§ÙØ© Ø´Ø±ÙØ© Ù٠استع٠ا٠اÙÙ Ø¹Ø§ÙØ¬Ø ÙØ¹ÙÙÙØ§ Ø£Ù ÙÙÙÙ ØØ°Ø±ÙÙØ ÙØ°Ø§ ÙÙ Ø£Ø±Ø¯ÙØ§ Ø§ÙØªØ¹ÙÙ٠عÙ٠اÙÙÙØ§Ø³.
ÙÙÙÙÙØ³ Ù Ø«ÙÙØ§ Ø¯Ø§ÙØªÙÙ Ø§Ø«ÙØªÙÙ ØªØØ³Ø¨Ø§Ù اÙÙØ±Ù بÙÙ ØªØ§Ø±ÙØ®ÙÙ: Ø£ÙÙ٠ا Ø£Ø³Ø±Ø¹Ø ÙÙØ·Ù٠عÙÙ ÙÙØ§Ø³Ø§Øª Ø§ÙØ£Ø¯Ø§Ø¡ ÙØ°Ù⦠ÙÙØ§Ø³Ø§Øª أداء âBenchmarkâ.
// â«Ø£Ù
اÙ
ÙØ§ date1 Ùdate2Ø Ø£ÙÙ Ø¯Ø§ÙØ© Ø³ØªÙØ¹Ùد اÙÙØ±Ù بÙÙÙÙ
ا (باÙÙ
ÙÙØ«Ø§ÙÙØ©) أسرع Ù
Ù Ø§ÙØ£Ø®Ø±ÙØâ« ÙØ°Ù...
function diffSubtract(date1, date2) {
return date2 - date1;
}
// â«Ø£Ù
ÙØ°Ù...
function diffGetTime(date1, date2) {
return date2.getTime() - date1.getTime();
}
ÙØ¸ÙÙØ© Ø§ÙØ¯Ø§ÙتÙÙ Ù
ØªØ·Ø§Ø¨ÙØ© تÙ
اÙ
ÙØ§Ø Ø¥ÙÙØ§ Ø£Ù Ø§ÙØ«Ø§ÙÙØ© تستعÙ
Ù Ø§ÙØªØ§Ø¨Ùع date.getTime()â Ø§ÙØµØ±ÙØ ÙØªØ¬Ùب Ø§ÙØªØ§Ø±ÙØ® باÙÙ
ÙÙØ«Ø§ÙÙØ©Ø بÙÙÙ
ا Ø§ÙØ£Ø®Ø±Ù تعتÙ
د عÙ٠تØÙÙÙ Ø§ÙØªØ§Ø±ÙØ® Ø¥Ù٠عدد. اÙÙØ§ØªØ¬ Ù
تطاب٠دÙÙ
ÙØ§.
Ø¥Ø°ÙØ§ Ø¨ÙØ°Ù اÙÙ Ø¹Ø·ÙØ§ØªØ Ø£ÙÙ Ø§ÙØ¯Ø§ÙتÙ٠أسرعØ
Ø£ÙÙÙ ÙÙØ±Ø© تخطر عÙÙ Ø§ÙØ¨Ø§Ù Ù٠تشغÙÙ ÙÙÙ ÙØ§ØØ¯Ø© ٠رات Ø¹Ø¯ÙØ¯Ø© ٠تتابعة ÙÙÙØ§Ø³ ÙØ±Ù اÙÙÙØª. Ø§ÙØ¯Ùا٠(ÙÙ ØØ§ÙØªÙØ§ ÙØ°Ù) Ø¨Ø³ÙØ·Ø© Ø¬Ø¯ÙØ§Ø ÙÙÙØ°Ø§ عÙÙÙØ§ تشغÙÙ ÙÙÙ ÙØ§ØØ¯Ø© ٠ئة Ø£Ù٠٠رة عÙÙ Ø§ÙØ£ÙÙ.
ÙÙÙØ§ ÙÙÙØ³ Ø§ÙØ£Ø¯Ø§Ø¡:
function diffSubtract(date1, date2) {
return date2 - date1;
}
function diffGetTime(date1, date2) {
return date2.getTime() - date1.getTime();
}
function bench(f) {
let date1 = new Date(0);
let date2 = new Date();
let start = Date.now();
for (let i = 0; i < 100000; i++) f(date1, date2);
return Date.now() - start;
}
alert( 'Time of diffSubtract: ' + bench(diffSubtract) + 'ms' );
alert( 'Time of diffGetTime: ' + bench(diffGetTime) + 'ms' );
Ø¹Ø¬Ø¨ÙØ§! استعÙ
Ø§Ù Ø§ÙØªØ§Ø¨Ùع getTime()â Ø£Ø³Ø±Ø¹ Ø¨ÙØ«Ùر! ÙØ¹Ø²Ù ذÙ٠بسبب Ø§ÙØ¹Ø¯Ø§Ù
ÙØ¬Ùد تØÙÙÙ ÙÙÙÙØ¹ (type conversion)Ø ÙÙØ°Ø§ ÙØ³ÙÙ٠عÙ٠اÙÙ
ØØ±ÙÙØ§Øª ØªØØ³ÙÙ Ø§ÙØ£Ø¯Ø§Ø¡.
جÙ
ÙÙØ ÙØµÙÙØ§ Ø¥ÙÙ Ø´ÙØ¡Ø ÙÙÙÙÙ ÙØ°Ø§ اÙÙÙØ§Ø³ ÙÙØ³ ÙÙØ§Ø³Ùا Ø·ÙØ¨Ùا بعد. تخÙÙ٠أÙ٠اÙÙ
Ø¹Ø§ÙØ¬ ÙØ§Ù ÙÙÙÙØ° Ø£Ù
Ø±ÙØ§ Ù
ا Ø¨Ø§ÙØªÙاز٠Ù
ع تشغÙÙ bench(diffSubtract)â ÙÙØ§Ù ÙØ³ØªÙÙ٠اÙÙ
ÙØ§Ø±Ø¯Ø ÙÙ
ا إ٠شغÙÙÙØ§ bench(diffGetTime)â ÙØ§Ù ذÙÙ Ø§ÙØ£Ù
ر ÙØ¯ Ø§ÙØªÙ
Ù. ÙØ°Ø§ Ø§ÙØªØ®ÙÙÙ Ù٠تخÙÙÙ Ø·Ø¨ÙØ¹Ù ÙØ£Ù
ر ÙØ§ÙعÙÙ Ø¬Ø¯ÙØ§ ØÙØ« اÙÙÙÙ
Ø£ÙØ¸Ù
Ø© Ø§ÙØªØ´ØºÙÙ Ù
ØªØ¹Ø¯ÙØ¯Ø© اÙÙ
ÙØ§Ù
. Ø¨ÙØ°Ø§ ÙÙÙÙ ÙÙ
رة اÙÙÙØ§Ø³ Ø§ÙØ£ÙÙÙ Ù
ÙØ§Ø±Ø¯ Ù
Ø¹Ø§ÙØ¬Ø© Ø£ÙÙ Ù
٠اÙÙ
رة Ø§ÙØ«Ø§ÙÙØ©Ø Ù
ا ÙØ¯ ÙØ¤Ø¯Ù٠إÙÙ ÙØªØ§Ø¦Ø¬ ÙÙØ§Ø³ خطأ.
Ø¥Ù Ø£Ø±Ø¯ÙØ§ Ø§ÙØªØ¹ÙÙ٠عÙÙ ÙÙØ§Ø³ Ø§ÙØ£Ø¯Ø§Ø¡Ø عÙÙÙØ§ إعادة تشغÙÙ ÙÙ ÙÙØ§Ø³Ø§Øª Ø§ÙØ£Ø¯Ø§Ø¡ اÙÙ ÙØ¬Ùدة Ø£ÙØ«Ø± Ù Ù Ù Ø±ÙØ©. ÙÙØ°Ø§ Ù Ø«ÙÙØ§:
function diffSubtract(date1, date2) {
return date2 - date1;
}
function diffGetTime(date1, date2) {
return date2.getTime() - date1.getTime();
}
function bench(f) {
let date1 = new Date(0);
let date2 = new Date();
let start = Date.now();
for (let i = 0; i < 100000; i++) f(date1, date2);
return Date.now() - start;
}
let time1 = 0;
let time2 = 0;
// â«ÙشغÙÙ bench(upperSlice)â Ùbench(upperLoop)â Ø¹Ø´Ø± Ù
رات Ù
Ø±ÙØ© بÙ
Ø±ÙØ©
for (let i = 0; i < 10; i++) {
time1 += bench(diffSubtract);
time2 += bench(diffGetTime);
}
alert( 'Total time for diffSubtract: ' + time1 );
alert( 'Total time for diffGetTime: ' + time2 );
ÙØ§ تبدأ Ù ØØ±ÙÙØ§Øª Ø¬Ø§ÙØ§ Ø³ÙØ±Ùبت Ø§ÙØØ¯ÙØ«Ø© بتطبÙÙ Ø§ÙØªØØ³ÙÙØ§Øª اÙÙ ØªÙØ¯ÙÙ Ø© Ø¥ÙÙØ§ عÙÙ âØ§ÙØ´ÙÙØ±Ø§Øª Ø§ÙØØ±Ø¬Ø©â Ø§Ùت٠تتÙÙÙØ° Ø£ÙØ«Ø± Ù Ù Ù Ø±ÙØ© (ÙØ§ Ø¯Ø§Ø¹Ù Ø¨ØªØØ³ÙÙ Ø´ÙÙØ±Ø© ÙØ§Ø¯Ø±Ø© Ø§ÙØªÙÙÙØ°). Ø¨ÙØ°Ø§ Ù٠اÙÙ Ø«Ø§Ù Ø§ÙØ£ÙÙØ ÙØ¯ ÙØ§ تÙÙ٠٠رات Ø§ÙØªÙÙÙØ° Ø§ÙØ£ÙÙÙ Ù ØØ³ÙÙØ© Ù٠ا ÙØ¬Ø¨Ø ÙØ±Ø¨Ù ا عÙÙÙØ§ Ø¥Ø¶Ø§ÙØ© تØÙ ÙØ© Ø³Ø±ÙØ¹Ø©:
// أضÙÙØ§Ù ÙÙâØªØÙ
ÙØ©â اÙÙ
ØØ±ÙÙ ÙØ¨Ù Ø§ÙØÙÙØ© Ø§ÙØ£Ø³Ø§Ø³
bench(diffSubtract);
bench(diffGetTime);
// Ø§ÙØ¢Ù ÙÙÙØ³
for (let i = 0; i < 10; i++) {
time1 += bench(diffSubtract);
time2 += bench(diffGetTime);
}
Ø§ÙØ²Ù Ø§ÙØØ°Ø± ٠ت٠٠ا Ø£Ø¬Ø±ÙØª ÙÙØ§Ø³Ø§Øª أداء عÙ٠اÙ٠ستÙÙ Ø§ÙØ°Ø±ÙÙ.
تÙÙÙÙØ° Ù ØØ±ÙÙØ§Øª Ø¬Ø§ÙØ§ Ø³ÙØ±Ùبت Ø§ÙØØ¯ÙØ«Ø© Ø¹Ø¯Ø¯ÙØ§ ÙØ¨ÙØ±ÙØ§ Ù Ù Ø§ÙØªØØ³ÙÙØ§ØªØ ÙÙØ¯ ØªÙØºÙÙØ± ÙØªØ§Ø¦Ø¬ âØ§ÙØ§Ø®ØªØ¨Ø§Ø±Ø§Øª Ø§ÙØµÙØ§Ø¹ÙØ©â Ù ÙØ§Ø²ÙØ©Ù âØ¨Ø§ÙØ§Ø³ØªØ¹Ù Ø§Ù Ø§ÙØ·Ø¨Ùع٠ÙÙØ§âØ Ø®ØµÙØµÙا ØÙÙ ÙÙÙØ³ أداء ٠ا ÙÙ ØµØºÙØ± ÙÙØºØ§ÙØ© ٠ث٠طرÙÙØ© Ø¹Ù Ù Ù ÙØ¹Ø§Ù Ù Ø±ÙØ§Ø¶ÙØ Ø£Ù Ø¯Ø§ÙØ© ٠ض٠ÙÙØ© Ù٠اÙÙØºØ© ÙÙØ³Ùا. ÙÙØ°Ø§Ø ÙÙ ÙÙØª ØªØ±ÙØ¯ ØÙÙØ§ ÙÙÙ Ø§ÙØ£Ø¯Ø§Ø¡ Ù٠ا ÙØ¬Ø¨Ø ÙÙ Ù ÙØ¶Ù٠تعÙÙ٠طرÙÙØ© Ø¹Ù Ù Ù ØØ±ÙÙ Ø¬Ø§ÙØ§ Ø³ÙØ±Ùبت. ØÙÙÙØ§ ربÙ٠ا ÙÙ ØªØØªØ§Ø¬ ÙØ°Ù اÙÙÙØ§Ø³Ø§Øª عÙ٠اÙ٠ستÙÙ Ø§ÙØ°Ø±ÙÙØ Ø£Ø¨Ø¯ÙØ§.
ÙÙ ÙÙÙ Ø£Ù ØªÙØ±Ø£ بعض اÙÙ ÙØ§Ùات Ø§ÙØ±Ø§Ø¦Ø¹Ø© ØÙÙ V8 ÙÙØ§ http://mrale.ph.
تØÙÙÙ Ø³ÙØ³ÙØ© ÙØµÙØ© باستع٠ا٠Date.parse
ÙÙ
Ù٠أ٠ÙÙØ±Ø£ Ø§ÙØªØ§Ø¨Ùع Date.parse(str) ØªØ§Ø±ÙØ®Ùا Ù
Ù Ø³ÙØ³ÙØ© ÙØµÙØ©. ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ ØªÙØ³Ù٠تÙÙ Ø§ÙØ³ÙØ³ÙØ© ÙÙØ°Ø§: YYYY-MM-DDTHH:mm:ss.sssZØ Ø¥Ø° تعÙÙ:
YYYY-MM-DDâ is the date: year-month-day.- The character
"T"is used as the delimiter. HH:mm:ss.sssâ is the time: hours, minutes, seconds and milliseconds.- The optional
'Z'part denotes the time zone in the format+-hh:mm. A single letterZwould mean UTC+0.
ÙÙ
ÙÙÙ Ø£ÙØ¶Ùا استعÙ
Ø§Ù ØªÙØ³ÙÙØ§Øª Ø£ÙØµØ± Ù
ث٠YYYY-MM-DD Ø£Ù YYYY-MM Ø£Ù ØØªÙÙ YYYY.
باستدعاء Date.parse(str) ÙØ§ÙØ³ÙØ³ÙØ© اÙÙØµÙØ© ØªÙØÙÙÙ ØØ³Ø¨ Ø§ÙØªÙسÙÙ ÙÙÙØ§ ÙÙÙØ¹Ùد Ø§ÙØªØ§Ø¨Ùع Ø§ÙØ®ØªÙ
Ø§ÙØ²Ù
ÙÙ (رÙÙ
اÙÙ
ÙÙØ«Ùا٠Ù
ÙØ° Ø§ÙØ£ÙÙ Ù
Ù ÙÙØ§Ùر 1970 بتÙÙÙØª UTC+0). ÙÙ ÙØ§Ù Ø§ÙØªÙسÙÙ ØºÙØ± صØÙØ ÙÙÙØ¹Ùد NaN.
Ø¥ÙÙ٠٠ثاÙÙØ§:
let ms = Date.parse('2012-01-26T13:51:50.417-07:00');
alert(ms); // â«1327611110417 (ختÙ
زÙ
ÙÙ)
ÙÙ
ÙÙÙØ§ Ø¥ÙØ´Ø§Ø¡ ÙØ§Ø¦Ù new Date Ù
باشرة٠Ù
Ù Ø§ÙØ®ØªÙ
Ø§ÙØ²Ù
ÙÙ:
let date = new Date( Date.parse('2012-01-26T13:51:50.417-07:00') );
alert(date);
Ù ÙØ®Øµ
- ÙÙÙ
Ø«ÙÙ Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙÙÙØª ÙÙ Ø¬Ø§ÙØ§ Ø³ÙØ±Ùبت Ø¨ÙØ§Ø¦Ù Date. ÙØ§ ÙÙ
ÙÙÙØ§ Ø¥ÙØ´Ø§Ø¡ âØªØ§Ø±ÙØ® ÙÙØ·â Ø£Ù âÙÙØªÙا ÙÙØ·âØ ÙØ¹ÙÙ ÙØ§Ø¦Ùات Ø§ÙØªØ§Ø±ÙØ®
DateØ§ØØªÙاء Ø§ÙØ§Ø«ÙÙÙ Ù Ø¹ÙØ§. - ØªÙØ¹Ø¯Ù Ø§ÙØ£Ø´Ùر Ø¨Ø¯Ø¡ÙØ§ Ø¨Ø§ÙØµÙر (ÙÙØ§Ùر ÙÙ Ø§ÙØ´Ùر ØµÙØ±Ø ÙØ¹Ù ).
- ÙÙØ¹Ø¯Ù رÙÙ
اÙÙÙÙ
Ù
Ù Ø§ÙØ£Ø³Ø¨Ùع ÙÙ
getDay()âÙ Ù Ø§ÙØµÙر Ø£ÙØ¶Ùا (ÙÙÙ ÙÙÙ Ø§ÙØ£ØØ¯). - ÙØµØÙØ ÙØ§Ø¦Ù Ø§ÙØªØ§Ø±ÙØ® ÙÙØ³Ù تÙÙØ§Ø¦ÙÙØ§ ØÙÙ ØªÙØ¶Ø¨Ø· Ù ÙÙÙÙØ§ØªÙ بÙÙÙ ÙØ§ Ù ÙØ·ÙÙØ©. ÙÙÙØ¯Ùا ÙØ¬Ù ع/Ø·Ø±Ø Ø§ÙØ£ÙØ§Ù ÙØ§ÙØ£Ø´ÙØ± ÙØ§ÙØ£Ø¹ÙØ§Ù .
- ÙÙ ÙÙ Ø·Ø±Ø Ø§ÙØªÙØ§Ø±ÙØ® ÙÙ Ø¹Ø±ÙØ© اÙÙØ±Ù بÙÙÙØ§ باÙÙ ÙÙØ«Ø§ÙÙØ©Ø ذÙÙ ÙØ£ÙÙ ÙØ§Ø¦Ù Ø§ÙØªØ§Ø±ÙØ® ÙØªØÙÙ٠إÙ٠خت٠ز٠ÙÙ ØÙÙ ÙØªØÙÙ٠إÙ٠عدد.
- استعÙ
Ù
Date.now()Ù٠أردت Ø¬ÙØ¨ Ø§ÙØ®ØªÙ Ø§ÙØ²Ù ÙÙ Ø§ÙØØ§Ù٠بسرعة.
ÙØ§ØØ¸ بأÙÙ Ø§ÙØ£Ø®ØªØ§Ù Ø§ÙØ²Ù ÙÙØ© ÙÙ Ø¬Ø§ÙØ§ Ø³ÙØ±Ùبت Ù٠باÙÙ ÙÙØ«Ø§ÙÙØ©Ø عÙÙ Ø§ÙØ¹Ùس Ù Ù Ø£ÙØ¸Ù Ø© Ø¹Ø¯ÙØ¯Ø© أخرÙ.
ÙØ¬Ø¯ ÙÙØ³Ùا بÙÙ Ø§ÙØÙÙ ÙØ§Ùآخر ÙÙØ§Ø³Ø§Øª ÙÙØª دÙÙÙØ©. ÙÙØ£Ø³Ù ÙÙØ§ تÙÙÙØ± Ø¬Ø§ÙØ§ Ø³ÙØ±Ùبت ÙÙØ³Ùا طرÙÙØ© ÙØØ³Ø§Ø¨ اÙÙÙØª باÙÙØ§ÙÙØ«Ø§ÙÙØ© (1 عÙÙ Ù ÙÙÙÙ Ù Ù Ø§ÙØ«Ø§ÙÙØ©)Ø ÙÙÙÙ Ø£ØºÙØ¨ Ø¨ÙØ¦Ø§ØªÙا تÙÙÙØ± ذÙÙ. ÙÙ Ø«ÙÙØ§ ت٠Ù٠اÙ٠تصÙÙØØ§Øª Ø§ÙØªØ§Ø¨Ùع performance.now()â Ø¥Ø° ÙÙØ¹Ùد عدد اÙÙ ÙÙØ«ÙØ§Ù Ù ÙØ° بدأ تØÙ ÙÙ Ø§ÙØµÙØØ© Ø¨ÙØ¯ÙØ© تص٠إÙ٠اÙ٠اÙÙØ±ÙثاÙÙØ© (Ø«ÙØ§Ø« Ø®Ø§ÙØ§Øª بعد اÙÙØ§ØµÙØ©):
alert(`Loading started ${performance.now()}ms ago`);
// Something like: "Loading started 34731.26000000001ms ago"
// .26 is microseconds (260 microseconds)
// more than 3 digits after the decimal point are precision errors, only the first 3 are correct
٠ا ÙÙ Ø§ÙØªØ§Ø±ÙØ® Ø§ÙØ°Ù ÙØ§Ù ÙØ¨Ù ÙØ°Ø§ ÙÙÙ Ø
Ø§ÙØ£ÙÙ ÙØ©: 4
Ø£ÙØ´Ùئ Ø¯Ø§ÙØ© getDateAgo(date, days) ØªÙØ¹Ùد بتÙ
Ø±ÙØ± Ø§ÙØªØ§Ø±ÙØ® date اسÙ
اÙÙÙÙ
Ù
Ù Ø§ÙØ´Ùر ÙØ¨Ù ÙØªØ±Ø© days ÙÙÙ
.
Ù
ثاÙ: ÙÙ ÙØ§Ù اÙÙÙÙ
Ø§ÙØ¹Ø´Ø±ÙÙ Ù
Ù Ø§ÙØ´ÙØ±Ø ÙØªÙØ¹ÙØ¯ getDateAgo(new Date(),1 )â Ø§Ùتاسع عشر ÙgetDateAgo(new Date(), 2)â Ø§ÙثاÙ
٠عشر.
ÙØ¬Ø¨ Ø£Ù ÙØ¹ÙÙ٠بأ٠تعÙ
Ù Ø§ÙØ¯Ø§ÙØ© ÙÙ ØØ§Ù days=356 ÙØ£Ùثر ØØªÙÙ:
let date = new Date(2015, 0, 2);
alert( getDateAgo(date, 1) ); // â«1Ø (1 ÙÙØ§Ùر 2015)
alert( getDateAgo(date, 2) ); // â«31Ø (31 Ø¯ÙØ³Ù
بر 2014)
alert( getDateAgo(date, 365) ); // â«2Ø (2 ÙÙØ§Ùر 2014)
Ù
ÙØ§ØØ¸Ø©: ÙØ¬Ø¨ Ø£ÙÙØ§ ØªÙØ¹Ø¯ÙÙ Ø§ÙØ¯Ø§ÙØ© Ø§ÙØªØ§Ø±ÙØ® date اÙÙ
ÙÙ
Ø±ÙØ±.
Ø§ÙØÙ
اÙÙÙØ±Ø© Ø¨Ø³ÙØ·Ø©Ø Ø£Ù ÙØ·Ø±Ø عدد Ø§ÙØ£ÙاÙ
Ù
Ù Ø§ÙØªØ§Ø±ÙØ® date:
function getDateAgo(date, days) {
date.setDate(date.getDate() - days);
return date.getDate();
}
ÙÙÙÙâ¦ ÙØ¬Ø¨ Ø£ÙÙØ§ ØªÙØ¹Ø¯ÙÙ Ø§ÙØ¯Ø§ÙØ© عÙÙ date. ÙØ°Ø§ Ù
ÙÙ
إذ Ø£ÙÙ Ø§ÙØ´ÙÙØ±Ø© خارج Ø§ÙØ¯Ø§ÙØ© Ø§ÙØªÙ ØªÙØ¹Ø·ÙÙØ§ Ø§ÙØªØ§Ø±ÙØ® ÙØ§ ØªØ±ÙØ¯ Ù
ÙÙØ§ تغÙÙØ±Ù. ÙÙÙÙÙØ° ذÙÙØ عÙÙÙØ§ ÙØ³Ø® Ø§ÙØªØ§Ø±ÙØ® ÙÙØ°Ø§ Ø£ÙÙÙØ§:
function getDateAgo(date, days) {
let dateCopy = new Date(date);
dateCopy.setDate(date.getDate() - days);
return dateCopy.getDate();
}
let date = new Date(2015, 0, 2);
alert( getDateAgo(date, 1) ); // â«1Ø (1 ÙÙØ§Ùر 2015)
alert( getDateAgo(date, 2) ); // â«31Ø (31 Ø¯ÙØ³Ù
بر 2014)
alert( getDateAgo(date, 365) ); // â«2Ø (2 ÙÙØ§Ùر 2014)
آخر ÙÙÙ Ù Ù Ø§ÙØ´Ùر ÙØ°Ø§Ø
Ø§ÙØ£ÙÙ ÙØ©: 5
Ø§ÙØªØ¨ Ø¯Ø§ÙØ© getLastDayOfMonth(year, month) ØªÙØ¹Ùد آخر ÙÙÙ
Ù
Ù Ø§ÙØ´Ùر. Ø£ØÙاÙÙØ§ ÙÙÙÙ Ø§ÙØ«ÙاثÙÙØ Ø£Ù Ø§ÙØØ§Ø¯Ù ÙØ§ÙØ«ÙØ§Ø«ÙÙ Ø£Ù Ø§ÙØ«Ø§Ù
Ù/Ø§ÙØªØ§Ø³Ø¹ عشر Ù
Ù ÙØ¨Ø±Ø§Ùر.
اÙÙ ÙØ¹Ø§Ù ÙØ§Øª:
yearâ Ø§Ùعا٠بأربع Ø®Ø§ÙØ§ØªØ Ù Ø«ÙÙØ§ 2012.monthâ Ø§ÙØ´ÙØ± Ù Ù 0 Ø¥ÙÙ 11.
Ù
ثاÙ: getLastDayOfMonth(2012, 1) = 29 (Ø³ÙØ© ÙØ¨ÙØ³Ø©Ø ÙØ¨Ø±Ø§Ùر).
Ø§ÙØÙ
ÙÙÙØµÙع ØªØ§Ø±ÙØ®Ùا Ø¨Ø§Ø³ØªØ¹Ù Ø§Ù Ø§ÙØ´Ùر Ø§ÙØªØ§ÙÙØ ÙÙÙÙÙ ÙÙ Ø±ÙØ± Ø§ÙØµÙر ÙÙÙÙ٠رÙ٠اÙÙÙÙ :
function getLastDayOfMonth(year, month) {
let date = new Date(year, month + 1, 0);
return date.getDate();
}
alert( getLastDayOfMonth(2012, 0) ); // 31
alert( getLastDayOfMonth(2012, 1) ); // 29
alert( getLastDayOfMonth(2013, 1) ); // 28
عادة٠٠ا تبدأ Ø§ÙØªÙØ§Ø±ÙØ® باÙÙØ§ØØ¯Ø ÙÙÙ ÙÙ ÙÙÙØ§ (تÙÙÙÙØ§) ØªÙ Ø±ÙØ± Ø£Ù٠عدد ÙØ³ÙÙØ¹Ø¯ÙÙ Ø§ÙØªØ§Ø±ÙØ® ÙÙØ³Ù. ÙØ°Ø§ ØÙÙ ÙÙ Ø±ÙØ± 0 ÙØ¹Ù٠بذÙÙ âÙÙÙ ÙØ§ ÙØ§ØØ¯ ÙØ¨Ù Ø§ÙØ£ÙÙ Ù Ù Ø§ÙØ´ÙØ±âØ Ø£Ù âØ§ÙÙÙÙ Ø§ÙØ£Ø®Ùر Ù Ù Ø§ÙØ´Ùر اÙ٠اضÙâ.
Ù٠٠٠ثاÙÙØ© ٠ضت اÙÙÙÙ Ø
Ø§ÙØ£ÙÙ ÙØ©: 5
Ø§ÙØªØ¨ Ø¯Ø§ÙØ© getSecondsToday()â ØªÙØ¹ÙØ¯ عدد Ø§ÙØ«ÙاÙÙ Ù
ÙØ° Ø¨Ø¯Ø§ÙØ© ÙØ°Ø§ اÙÙÙÙ
. ÙÙ
Ø«ÙÙØ§ ÙÙ ÙØ§Ùت Ø§ÙØ³Ø§Ø¹Ø© Ø§ÙØ¢Ù 10:00 amØ ÙØ¨Ø¯ÙÙ Ø§ÙØªÙÙÙØª Ø§ÙØµÙÙÙØ ÙØ³ØªØ¹Ø·ÙÙØ§ Ø§ÙØ¯Ø§ÙØ©:
getSecondsToday() == 36000 // (3600 * 10)
ÙØ¬Ø¨ Ø£Ù ØªØ¹Ù Ù Ø§ÙØ¯Ø§ÙØ© Ù Ù٠ا ÙØ§Ù اÙÙÙÙ . Ø£ÙÙ Ø£ÙØ§ ØªØØªÙ٠عÙÙ ÙÙÙ Ø© داخÙÙØ§ Ø¨ØªØ§Ø±ÙØ® âØ§ÙÙÙÙ â⦠اÙÙÙÙ .
Ø§ÙØÙ
ÙÙØ¹Ø±Ù عدد Ø§ÙØ«ÙاÙÙ ÙÙ ÙÙÙØ§ تÙÙÙØ¯ ØªØ§Ø±ÙØ®Ùا باستع٠ا٠اÙÙÙÙ Ø§ÙØØ§ÙÙ ÙØ§Ùساعة 00:00:00Ø ÙØ«Ù Ù ÙØ·Ø±Ø Ù ÙÙØ§ âØ§ÙÙÙØª ÙØ§ÙØªØ§Ø±ÙØ® Ø§ÙØ¢Ùâ. سÙÙÙ٠اÙÙØ±Ù ØÙÙÙØ§ بعدد اÙÙ ÙÙØ«ÙØ§Ù Ù ÙØ° Ø¨Ø¯Ø§ÙØ© ÙØ°Ø§ اÙÙÙÙ Ø ÙÙÙØ³Ù ٠عÙÙ 1000 ÙÙØ¹Ø±Ù Ø§ÙØ«ÙاÙÙ ÙÙØ·:
function getSecondsToday() {
let now = new Date();
// Ø£ÙØ´Ùئ ÙØ§Ø¦ÙÙØ§ باستعÙ
ا٠اÙÙÙÙ
ÙØ§ÙØ´ÙØ± ÙØ§ÙØ³ÙØ© ØØ§ÙÙÙØ§
let today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
let diff = now - today; // اÙÙØ±Ù باÙÙ
ÙÙØ«Ø§ÙÙØ©
return Math.round(diff / 1000); // ÙØÙÙÙ٠إÙÙ Ø«ÙØ§Ù
}
alert( getSecondsToday() );
Ø§ÙØÙ Ø§ÙØ¢Ø®Ø± ÙÙ Ø¬ÙØ¨ Ø§ÙØ³Ø§Ø¹Ø© ÙØ§ÙدÙÙÙØ© ÙØ§ÙثاÙÙØ© ÙØªØÙÙÙÙØ§ Ø¥Ù٠عدد Ø§ÙØ«ÙاÙÙ:
function getSecondsToday() {
let d = new Date();
return d.getHours() * 3600 + d.getMinutes() * 60 + d.getSeconds();
}
Ù٠٠٠ثاÙÙØ© Ø¨ÙØª ØØªÙÙ Ø§ÙØºØ¯Ø
Ø§ÙØ£ÙÙ ÙØ©: 5
Ø£ÙØ´Ùئ Ø¯Ø§ÙØ© getSecondsToTomorrow()â ØªÙØ¹ÙØ¯ عدد Ø§ÙØ«ÙاÙÙ ØØªÙÙ ÙØÙÙ Ø§ÙØºØ¯. ÙÙ
Ø«ÙÙØ§ ÙÙ ÙØ§Ù اÙÙÙØª Ø§ÙØ¢Ù 23:00Ø ØªÙØ¹Ùد ÙÙØ§:
getSecondsToTomorrow() == 3600
Ù ÙØ§ØØ¸Ø©: ÙØ¬Ø¨ Ø£Ù ØªØ¹Ù Ù Ø§ÙØ¯Ø§ÙØ© Ù Ù٠ا ÙØ§Ù اÙÙÙÙ Ø ÙØ£Ùا تعتبر âØ§ÙÙÙÙ â ÙØ°Ø§ اÙÙÙÙ .
Ø§ÙØÙ
ÙÙØ¹Ø±Ù عدد اÙÙ ÙÙØ«ÙØ§Ù ØØªÙÙ ÙØ¯ÙÙ Ø§ÙØºØ¯Ø ÙÙ ÙÙÙØ§ Ø£Ù ÙØ·Ø±Ø Ù Ù âØ§ÙØºØ¯ 00:00:00â Ø§ÙØªØ§Ø±ÙØ® اÙÙÙÙ . Ø£ÙÙÙÙØ§Ø ÙÙÙÙØ¯ ÙØ°Ø§ âØ§ÙØºØ¯â ÙØ«Ù Ù ÙÙÙÙØ° Ø§ÙØ·Ø±Ø:
function getSecondsToTomorrow() {
let now = new Date();
// ØªØ§Ø±ÙØ® Ø§ÙØºØ¯
let tomorrow = new Date(now.getFullYear(), now.getMonth(), now.getDate()+1);
let diff = tomorrow - now; // اÙÙØ±Ù باÙÙ
ÙÙØ«Ø§ÙÙØ©
return Math.round(diff / 1000); // ÙØÙÙÙ٠إÙÙ Ø«ÙØ§Ù
}
ØÙ بدÙÙ:
function getSecondsToTomorrow() {
let now = new Date();
let hour = now.getHours();
let minutes = now.getMinutes();
let seconds = now.getSeconds();
let totalSecondsToday = (hour * 60 + minutes) * 60 + seconds;
let totalSecondsInADay = 86400;
return totalSecondsInADay - totalSecondsToday;
}
ÙØ§ØØ¸ Ø£ÙÙ ÙÙØ§Ù دÙÙÙØ§ ÙØ«Ùرة ØªØ³ØªØ¹Ù Ù Ø§ÙØªÙÙÙØª Ø§ÙØµÙÙÙØ ÙØ°Ø§ ستجد ÙÙØ§Ù Ø£ÙØ§Ù ÙÙÙØ§ 23 Ø£Ù 25 ساعة. ÙÙ ÙÙ Ø£Ù ÙØªØ¹Ø§Ù ٠٠ع ÙØ°Ù Ø§ÙØ£ÙØ§Ù Ø¨ÙØÙÙ Ù ÙÙØµÙ.
ØªÙØ³ÙÙ Ø§ÙØªØ§Ø±ÙØ® ÙØ³Ø¨ÙÙØ§
Ø§ÙØ£ÙÙ ÙØ©: 4
Ø§ÙØªØ¨ Ø¯Ø§ÙØ© formatDate(date) تÙÙØ³ÙÙ Ø§ÙØªØ§Ø±ÙØ® date ØØ³Ø¨ Ø§ÙØ¢ØªÙ:
- ÙÙ Ù
Ø±ÙØª Ø£ÙÙÙ Ù
٠ثاÙÙØ© Ù
Ù
dateØ ÙØªÙØ¹ÙØ¯"right now". - ÙØ¥ÙÙØ§Ø ÙÙ Ù
Ø±ÙØª Ø£ÙÙÙ Ù
٠دÙÙÙØ© Ù
Ù
dateØ ÙØªÙØ¹ÙØ¯"n sec. ago". - ÙØ¥ÙÙØ§Ø Ù٠أÙÙ Ù
Ù Ø³Ø§Ø¹Ø©Ø ÙØªÙØ¹ÙØ¯
"m min. ago". - ÙØ¥ÙÙØ§Ø ÙØªÙØ¹ÙØ¯ Ø§ÙØªØ§Ø±ÙØ® ÙØ§Ù
ÙÙØ§ Ø¨Ø§ÙØªÙسÙÙ
"DD.MM.YY HH:mm"Ø Ø£Ù (Ø´ÙÙÙÙØ§):Ø§ÙØ¯ÙÙÙØ©:Ø§ÙØ³Ø§Ø¹Ø© Ø§ÙØ¹Ø§Ù :Ø§ÙØ´Ùر:اÙÙÙÙ(ÙÙÙØ§ Ø¨Ø®Ø§ÙØªÙÙ). Ù Ø«Ù:31.12.16 10:00.
Ø£Ù Ø«ÙØ©:
alert( formatDate(new Date(new Date - 1)) ); // "right now"
alert( formatDate(new Date(new Date - 30 * 1000)) ); // "30 sec. ago"
alert( formatDate(new Date(new Date - 5 * 60 * 1000)) ); // "5 min. ago"
// â«ØªØ§Ø±ÙØ® Ø§ÙØ£Ù
Ø³Ø Ù
Ø«ÙÙØ§ â31.12.16, 20:00
alert( formatDate(new Date(new Date - 86400 * 1000)) );
Ø§ÙØÙ
ÙÙØ¬Ùب اÙÙÙØª اÙÙ
ÙÙØ¶Ù Ù
ÙØ° date ÙØØªÙÙ Ø§ÙØ¢ÙØ Ø³ÙØ·Ø±Ø Ø§ÙØªØ§Ø±ÙØ®ÙÙ.
function formatDate(date) {
let diff = new Date() - date; // اÙÙØ±Ù باÙÙ
ÙÙØ«Ø§ÙÙØ©
if (diff < 1000) { // Ø£ÙÙ Ù
٠ثاÙÙØ© ÙØ§ØØ¯Ø©
return 'right now';
}
let sec = Math.floor(diff / 1000); // ÙØÙÙ٠اÙÙØ±Ù Ø¥ÙÙ Ø«ÙØ§Ù
if (sec < 60) {
return sec + ' sec. ago';
}
let min = Math.floor(diff / 60000); // ÙØÙÙ٠اÙÙØ±Ù Ø¥ÙÙ Ø¯ÙØ§Ø¦Ù
if (min < 60) {
return min + ' min. ago';
}
// ÙÙØ³ÙÙ Ø§ÙØªØ§Ø±ÙØ®
// ÙÙÙØ¶ÙÙ Ø£ØµÙØ§Ø±Ùا ÙÙ ÙØ§Ù اÙÙÙÙ
/Ø§ÙØ´Ùر/Ø§ÙØ³Ø§Ø¹Ø©/Ø§ÙØ¯ÙÙÙØ© Ø¨Ø®Ø§ÙØ© ÙØ§ØØ¯Ø©
let d = date;
d = [
'0' + d.getDate(),
'0' + (d.getMonth() + 1),
'' + d.getFullYear(),
'0' + d.getHours(),
'0' + d.getMinutes()
].map(component => component.slice(-2)); // ÙØ£Ø®Ø° Ø§ÙØ®Ø§ÙتÙÙ Ø§ÙØ£Ø®ÙرتÙÙ Ù
Ù ÙÙÙ Ù
ÙÙÙÙ
// ÙØ¯Ù
ج اÙÙ
ÙÙÙÙØ§Øª ÙÙ ØªØ§Ø±ÙØ®
return d.slice(0, 3).join('.') + ' ' + d.slice(3).join(':');
}
alert( formatDate(new Date(new Date - 1)) ); // "right now"
alert( formatDate(new Date(new Date - 30 * 1000)) ); // "30 sec. ago"
alert( formatDate(new Date(new Date - 5 * 60 * 1000)) ); // "5 min. ago"
// â«ØªØ§Ø±ÙØ® Ø§ÙØ£Ù
Ø³Ø Ù
Ø«ÙÙØ§ â31.12.16, 20:00
alert( formatDate(new Date(new Date - 86400 * 1000)) );
ØÙ بدÙÙ:
function formatDate(date) {
let dayOfMonth = date.getDate();
let month = date.getMonth() + 1;
let year = date.getFullYear();
let hour = date.getHours();
let minutes = date.getMinutes();
let diffMs = new Date() - date;
let diffSec = Math.round(diffMs / 1000);
let diffMin = diffSec / 60;
let diffHour = diffMin / 60;
// Ø§ÙØªÙسÙÙ
year = year.toString().slice(-2);
month = month < 10 ? '0' + month : month;
dayOfMonth = dayOfMonth < 10 ? '0' + dayOfMonth : dayOfMonth;
if (diffSec < 1) {
return 'right now';
} else if (diffMin < 1) {
return `${diffSec} sec. ago`
} else if (diffHour < 1) {
return `${diffMin} min. ago`
} else {
return `${dayOfMonth}.${month}.${year} ${hour}:${minutes}`
}
}
ÙØ§ØØ¸ بأÙÙ ÙØ°Ù Ø§ÙØ·Ø±ÙÙØ© سÙÙØ¦Ø© Ù٠أردت دع٠اÙÙØºØ§Øª Ø¯Ø¹Ù ÙØ§ صØÙØÙا (ÙÙ Ø§ÙØ¹Ø±Ø¨ÙØ© ÙÙØ§Ù ثاÙÙØ© ÙØ§ØØ¯Ø© ÙØ«Ø§ÙÙØªÙÙ ÙØ«Ùاث Ø«ÙØ§Ù ÙØ®Ù سÙ٠ثاÙÙØ© ÙÙÙØ°Ø§).
ترج٠ة -ÙØ¨ØªØµØ±Ù- ÙÙÙØµÙ Date and time Ù Ù ÙØªØ§Ø¨ The JavaScript language.
Ø§ÙØªØ¹ÙÙÙØ§Øª
<code>Ø ÙÙÙÙØ«Ùر Ù Ù Ø§ÙØ³Ø·Ùر استخدÙ<pre>Ø ÙÙØ£Ùثر Ù Ù 10 Ø³Ø·ÙØ± استخد٠(plnkr, JSBin, codepenâ¦)