ජාවාස්ක්‍රිප්ට් හි යුනික්ස් කාලරාමුව වරින් වර පරිවර්තනය කරන්න


1186

මම යුනික්ස් කාලරාමුව ලෙස MySQL දත්ත ගබඩාවක කාලය ගබඩා කර ඇති අතර එය ජාවාස්ක්‍රිප්ට් කේතයකට යවනු ලැබේ. මම එයින් කාලය පමණක් ලබා ගන්නේ කෙසේද?

උදාහරණයක් ලෙස, HH / MM / SS ආකෘතියෙන්.


8
JS කාලරාමු මිලි තත්පර වලින් වන අතර තත්පර කිහිපයකින් PHP ලබා දෙන බැවින් 1000 කින් ගුණ කරන්න.
ankr

විවිධ දින ආකෘතිය සමඟ ඉතා ප්‍රයෝජනවත් සබැඳියක් මෙන්න: timestamp.online/article/… 1000 කින් ගුණ කිරීම සමඟ ඒකාබද්ධ කරන්න, එමඟින් කාර්යය ඉටු වේ!
කෙවින් ලෙමයර්

Answers:


1772

let unix_timestamp = 1549312452
// Create a new JavaScript Date object based on the timestamp
// multiplied by 1000 so that the argument is in milliseconds, not seconds.
var date = new Date(unix_timestamp * 1000);
// Hours part from the timestamp
var hours = date.getHours();
// Minutes part from the timestamp
var minutes = "0" + date.getMinutes();
// Seconds part from the timestamp
var seconds = "0" + date.getSeconds();

// Will display time in 10:30:23 format
var formattedTime = hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);

console.log(formattedTime);

දිනය වස්තුව පිළිබඳ වැඩි විස්තර සඳහා කරුණාකර MDN හෝ ECMAScript 5 පිරිවිතර බලන්න .


115
ගුණ නවීන ජනිතවන තාපය මත සුළු වේ @nickf - වැල අකාර අවශ්ය කෙරෙනු ගොඩක් වැඩි වැඩ!
ඇල්නිටැක්

30
10 ට අඩු අගයන්ට පෙර අමතර 0 ක් එකතු නොකරන බැවින් ඇත්ත වශයෙන්ම එය '10: 2: 2 'ආකෘතියෙන් පෙන්වනු ඇත.
Fireblaze

17
65 user656925 - ගුණ කිරීම සඳහා සංඛ්‍යා ඇතුළත් වන අතර, සම්මුතියට නූල් සම්බන්ධ වේ. පරිගණක නූල් වලට වඩා කාර්යක්ෂමව සංඛ්‍යා හසුරුවයි. නූල් සම්මුතිය සිදු කළ විට, පසුබිම තුළ මතක කළමනාකරණය විශාල ප්‍රමාණයක් සිදු වේ. (කෙසේ වෙතත්, ඔබ මේ වන විටත් කෙසේ හෝ වැලක් අකාර කරන්නේ නම්, එසේ නම් නූල් එකක් දී අතිරේක චරිත කිහිපයක් ඇතුළු ඇත්තටම අඩු වියදම් අධික සාමාන්ය එය එකට සංඛ්යා දෙකක් ගුණ කිරීම සඳහා ගත එක් ප්රොසෙසරයක් කෝප් වඩා විය හැක.)
Brilliand

8
All ස්ටෝල්මන් අංක ගණනය කිරීම යනු පරිගණක විසින් සිදු කරනු ලබන මූලිකම දෙය වන අතර ඒවා මතකයේ සහ ධාවන වේලාවේදී අතිශයින්ම කාර්යක්ෂම වේ. IMHO ඔහුගේ අදහස් දැක්වීමේ අවසාන කොටස මුළුමනින්ම ව්‍යාජ එකක් වුවද ඉහත බ්‍රිලියන්ඩ්ගේ ප්‍රකාශය අදාළ වේ.
අල්නිටැක්

5
All ස්ටෝල්මන් එය සෑම භාෂාවක් සම්බන්ධයෙන්ම සත්‍යයකි (හෝ සියල්ලටම වඩා න්‍යායිකව විදේශීය භාෂාවක් නිර්මාණය කළ හැක්කේ මේ හා සමාන නොවන - නමුත් පොදු සියල්ලම වේ). නූල් වල අන්තර්ගතය ගබඩා කර ඇති මතක කොටසකට දර්ශකයක් ලෙස අභ්‍යන්තරව ගබඩා වේ. දර්ශකයම එකම පද්ධතියක් මත බොහෝ සංඛ්‍යා භාවිතා කරන මතක ප්‍රමාණයම භාවිතා කරන අතර සත්‍ය නූල් ගබඩා කිරීමේ මතකය ඊට අමතරව වේ. ඉන්පසු ඔබ නූල් එකිනෙක ගැටෙන විට, ඔබ බොහෝ විට නූල් දෙකේම ඒකාබද්ධ අන්තර්ගතයන් සමඟ අලුත්ම නූල් සාදයි.
බ්‍රිලියන්ඩ්

304

function timeConverter(UNIX_timestamp){
  var a = new Date(UNIX_timestamp * 1000);
  var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
  var year = a.getFullYear();
  var month = months[a.getMonth()];
  var date = a.getDate();
  var hour = a.getHours();
  var min = a.getMinutes();
  var sec = a.getSeconds();
  var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec ;
  return time;
}
console.log(timeConverter(0));


HH / MM / SS සඳහා අවසාන විචල්‍යයන් තුන පමණක් භාවිතා කරන්න. මෙය ඔබගේ දේශීය වේලාව වේ. නමුත් ඔබට UTC වේලාව ලබා ගැනීමට අවශ්‍ය නම් getUTC ක්‍රම භාවිතා කරන්න. මෙන්න කේතය.
shomrat

36
මම මෙම විසඳුම භාවිතා කළ නමුත් එය තත්පර 3 ක් හෝ 9 ක් වෙනුවට: 03 හෝ: 09 ලෙස පෙන්වනු පිණිස එය වෙනස් var min = a.getMinutes() < 10 ? '0' + a.getMinutes() : a.getMinutes(); var sec = a.getSeconds() < 10 ? '0' + a.getSeconds() : a.getSeconds();
කළෙමි

3
දෝෂය: getMonth()0 සිට 11 දක්වා මාසයක් ලබා දෙයි, එබැවින් a.getMonth() - 1වැරදිය.
jcampbell1

199

ජාවාස්ක්‍රිප්ට් මිලි තත්පර වලින් ක්‍රියා කරයි, එබැවින් ඔබට පළමුව යුනික්ස් කාලරාමුව තත්පර සිට මිලි තත්පර බවට පරිවර්තනය කළ යුතුය.

var date = new Date(UNIX_Timestamp * 1000);
// Manipulate JavaScript Date object here...

84

භාවිත:

var s = new Date(1504095567183).toLocaleDateString("en-US")
console.log(s)
// expected output "8/30/2017"  

සහ කාලය සඳහා:

var s = new Date(1504095567183).toLocaleTimeString("en-US")
console.log(s)
// expected output "3:19:27 PM"

Date.prototype.toLocaleDateString () බලන්න


මෙය දිනය (M / D / YYYY) ලබා ගැනීම සඳහා වන විධානයකි, ඉල්ලූ පරිදි කාලය (HH / MM / SS) නොවේ.
වුල්ෆ්ගැන්ග්

4
සටහනක් පමණක්, "1504095567183" අංකය unix_timestamp * 1000
camillo777

1
ඊට අමතරව, toLocaleStringදිනය සහ වේලාව යන දෙකම ඇතුළත් වේ.
ෂෝන්

80

මම ජේකබ් රයිට්ගේ පක්ෂග්‍රාහීයි Date.format() පුස්තකාලයට වන අතර එය ජාවාස්ක්‍රිප්ට් දින හැඩතල ගැන්වීම PHP හි date()ක්‍රියාකාරිත්වයේ ශෛලිය තුල ක්‍රියාත්මක කරයි.

new Date(unix_timestamp * 1000).format('h:i:s')

13
මම දන්නවා එය දින කිහිපයකින් හොඳ පිළිතුරක් විය, නමුත් මේ දිනවල ස්වදේශීය js වස්තූන් විස්තාරණය කිරීම ප්‍රති-රටාවකි.
පීටර්

3
එය නෝඩ් ජේඑස් හි (තවදුරටත්?) ක්‍රියා නොකරයි format is not a function. නමුත් මෙය පෙනෙන පරිදි ක්‍රියාත්මක වේ: stackoverflow.com/a/34015511/7550772
ibodi

56

තත්පර සංයුති කිරීම සඳහා කෙටිම එක්-ලයිනර් විසඳුම මෙන්න hh:mm:ss:

/**
 * Convert seconds to time string (hh:mm:ss).
 *
 * @param Number s
 *
 * @return String
 */
function time(s) {
    return new Date(s * 1e3).toISOString().slice(-13, -5);
}

console.log( time(12345) );  // "03:25:45"

ක්රමය Date.prototype.toISOString()සරල දීර්ඝ කාලය නැවත ISO 8601 වන ආකෘතිය, හැම විටම චරිත 24 ක් හෝ 27 ක දීර්ඝ (එනම් YYYY-MM-DDTHH:mm:ss.sssZහෝ ±YYYYYY-MM-DDTHH:mm:ss.sssZපිළිවෙළින්). කාල කලාපය සැමවිටම ශුන්‍ය UTC ඕෆ්සෙට් වේ.

සැ.යු: මෙම විසඳුමට කිසිදු තෙවන පාර්ශවීය පුස්තකාල අවශ්‍ය නොවන අතර සියලු නවීන බ්‍රව්සර් සහ ජාවාස්ක්‍රිප්ට් එන්ජින් සඳහා සහය දක්වයි.


මම ඔබගේ ක්‍රියාව ක්‍රෝම් හි කොන්සෝලය තුළ අලවන්නෙමි: / ඔබේ ෆෙඩල් එකේ පවා එය මා වෙනුවෙන් 01:02:00 පෙන්වයි! ෆයර්ෆොක්ස් මත උත්සාහ කර ඇත, එකම ප්‍රති .ල. හරිම අමුතුයි ... මට හොඳටම විශ්වාසයි මම GMT + 1 නිසා!
ස්ටීව් චමයිලාර්ඩ්

ඕනෑම කාල කලාපයක් නොසලකා හරින ඔබගේ පිළිතුර සඳහා මම සංස්කරණයක් ඉදිරිපත් කර ඇත්තෙමි, එබැවින් එය සෑම විටම නිවැරදි ආකෘතිගත අගය පෙන්වනු ඇත!
ස්ටීව් චමයිලාර්ඩ්

1
ස්තූතියි, ස්ටීව්. ඔබ හරි, toTimeStringකාල කලාප සමඟ හොඳින් වැඩ කළේ නැහැ. අවාසනාවට ඔබේ සංස්කරණය මා දැකීමට පෙර ප්‍රතික්ෂේප කරන ලදි. කෙසේ වෙතත්, toISOStringඒ වෙනුවට භාවිතා කිරීමට මම යෝජනා කරමි , toGMTStringඅවලංගු කර ඇති අතර විවිධ වේදිකාවල විවිධ ප්‍රති results ල ලබා දිය හැකිය.
VisioN

ES6 සමඟ ඊටත් වඩා කෙටි වේවා: කාලය = s => නව දිනය (s * 1e3) .toISOString (). පෙත්ත (-13, -5)
SamGoody

29

Momentjs.com වැනි පුස්තකාලයක් භාවිතා කිරීම ගැන මම සිතමි , මෙය සැබවින්ම සරල කරයි:

යුනික්ස් කාලරාමුව මත පදනම්ව:

var timestamp = moment.unix(1293683278);
console.log( timestamp.format("HH/mm/ss") );

MySQL දින නූලක් මත පදනම්ව:

var now = moment("2010-10-10 12:03:15");
console.log( now.format("HH/mm/ss") );

3
moment.js (හෝ ඒ හා සමාන ලිබ්ස්) හි තවත් වාසියක් වනුයේ "පැය 6 කට පෙර" වැනි පණිවිඩ සඳහා ඔවුන්ගේ සාපේක්ෂ වේලාවට සහාය වීමයි .
මාටින්

ඔබගේ console.logඋදාහරණ වලදී, ආකෘතිය නිසා මා ව්‍යාකූල වූ /නමුත් එය මට බොහෝ උපකාර විය.
NetOperator Wibby

මගේ කාලරාමුව UTC ආකෘතියෙන් ඇත. ඒ සඳහා මා මෙහි කළ යුතු වෙනසක් තිබේද? මට / ප.ව.
කෝඩෙක්

moment.js යනු එතරම් කුඩා දෙයක් කිරීම සඳහා අධික ලෙස මරණයට පත්වන අතර එය ඔබගේ ක්‍රියාකාරිත්වයට බලපානු ඇත. ඒ වෙනුවට දේශීය ක්‍රම භාවිතා කරන්න, cf. ඩෑන් ඇල්බොටෙනුගේ පිළිතුර
රොබින් මෙට්‍රල්

22

යුනික්ස් කාලරාමුව 1970 ජනවාරි 1 වන දින 00:00:00 යූටීසී සිට තත්පර ගණනකි ( විකිපීඩියාවට අනුව) ).

ජාවාස්ක්‍රිප්ට් හි දිනය වස්තුව පිළිබඳ තර්කය 1970 ජනවාරි 1 වන දින 00:00:00 යූටීසී සිට මිලි තත්පර ගණනකි (ඩබ්ලිව් 3 පාසල් ජාවාස්ක්‍රිප්ට් ප්‍රලේඛනයට අනුව) ).

උදාහරණයක් ලෙස පහත කේතය බලන්න:

    function tm(unix_tm) {
        var dt = new Date(unix_tm*1000);
        document.writeln(dt.getHours() + '/' + dt.getMinutes() + '/' + dt.getSeconds() + ' -- ' + dt + '<br>');

    }

tm(60);
tm(86400);

ලබා දෙයි:

1/1/0 -- Thu Jan 01 1970 01:01:00 GMT+0100 (Central European Standard Time)
1/0/0 -- Fri Jan 02 1970 01:00:00 GMT+0100 (Central European Standard Time)

20

තත්පර hh: mm: ss: ප්‍රභේදය ලෙස හැඩගස්වා ගැනීමට කෙටිම එක්-ලයිනර් විසඳුම

console.log(new Date(1549312452 * 1000).toISOString().slice(0, 19).replace('T', ' '));
// "2019-02-04 20:34:12"



2
ankeanu_reeves - ඔබ නැගෙනහිර එක්සත් ජනපද කාල කලාපයේ සිටින අතර කාලරාමු යූටීසී ය. .Slice (0,19) ඉවත් කිරීමට උත්සාහ කරන්න, එවිට ඔබ සිතන්නේ ප්‍රති result ලයේ කාල කලාපය Z (Zulu) බවයි.
bitfiddler

17

Moment.js භාවිතා කිරීමෙන් ඔබට කාලය හා දිනය මේ ආකාරයෙන් ලබා ගත හැකිය:

var dateTimeString = moment(1439198499).format("DD-MM-YYYY HH:mm:ss");

ඔබට මෙය භාවිතා කළ හැක්කේ කාලය පමණි:

var timeString = moment(1439198499).format("HH:mm:ss");

මෙම ආකෘතිය DD-MM-YYYY HH: mm: ss 1439198499 වැනි දෙයක් බවට පරිවර්තනය කිරීම වැනි එය පසුපසට කරන්නේ කෙසේදැයි ඔබ දන්නවාද ??
කෙමාත් රොචි

හායි කෙමාත්, ඔබට මෙම ප්‍රකාශ මොහොත හරහා එය කළ හැකිය ('2009-07-15 00:00:00'). යුනික්ස් ()
පීටර් ටී.

මගේ කාලරාමුව UTC ආකෘතියෙන් ඇත. ඒ සඳහා මා මෙහි කළ යුතු වෙනසක් තිබේද? මට / ප.ව.
කෝඩෙක්

ඔබට පහසුවෙන් දිනය usign momentJS කිරීමට ඇති වේලාමුද්රාව හා පරිවර්තනය කළ හැකි අතර, එය ඔබට මෙම Checkout coderszine.com/convert-timestamp-to-date-using-javascript
Laeeq

15

ඉහත සඳහන් විසඳුම් සමඟ ඇති ගැටළුව නම්, පැයට, මිනිත්තුවට හෝ තත්පරයට ඇත්තේ එක් ඉලක්කම් (එනම් 0-9) නම්, කාලය වැරදියි, උදා: එය 2: 3: 9 විය හැකිය, නමුත් එය 02: විය යුතුය. 03:09.

මෙම පිටුවට අනුව දිනයෙහි "toLocaleTimeString" ක්‍රමය භාවිතා කිරීම වඩා හොඳ විසඳුමක් බව පෙනේ.


5
බොහෝ වෙබ් විසඳුම් සඳහා, මෙය වඩාත් නිවැරදි පිළිතුර වේ, මන්ද එය සේවාදායකයාගේ ස්ථානය භාවිතා කරයි, උදා: 24h එදිරිව. 12h am / pm ආකෘතිය. කාල නූලක් සඳහා, ඔබ පසුව භාවිතා කරනු ඇත්තේ:date.toLocaleTimeString()
බචි

1
එය toTimeStringක්රමය සමඟ සිදු නොවේ . මෙහි පරීක්ෂා කරන්න: stackoverflow.com/a/35890537/1249581 .
VisioN

14

තවත් ක්‍රමයක් - ISO 8601 දිනයක සිට.

var timestamp = 1293683278;
var date = new Date(timestamp * 1000);
var iso = date.toISOString().match(/(\d{2}:\d{2}:\d{2})/)
alert(iso[1]);


මට "Object ... 'toISOString' ක්‍රමයක් නොමැත"
Aviram Netanel

මගේ කාලරාමුව UTC ආකෘතියෙන් ඇත. ඒ සඳහා මා මෙහි කළ යුතු වෙනසක් තිබේද? මට / ප.ව.
කෝඩෙක්

14

මොහොතකින් ඔබ යුනික්ස් කාලරාමුව භාවිතා කළ යුතුය:

const dateTimeString = moment.unix(1466760005).format("DD-MM-YYYY HH:mm:ss");

10

@ ෂොම්රාත්ගේ පිළිතුර මත පදනම්ව, මෙන්න මේ වගේ ස්වයංක්‍රීයව දිවා කාලය ලියන ස්නිපටයක් (පිළිතුරු සඳහා ස්ටැක් ඕවර්ෆ්ලෝගේ දිනයට ටිකක් සමානයි :) answered Nov 6 '16 at 11:51:

today, 11:23

හෝ

yersterday, 11:23

හෝ (අදට වඩා වෙනස් නමුත් එකම වසර නම්)

6 Nov, 11:23

හෝ (අදට වඩා තවත් වසරක් නම්)

6 Nov 2016, 11:23

function timeConverter(t) {     
    var a = new Date(t * 1000);
    var today = new Date();
    var yesterday = new Date(Date.now() - 86400000);
    var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    var year = a.getFullYear();
    var month = months[a.getMonth()];
    var date = a.getDate();
    var hour = a.getHours();
    var min = a.getMinutes();
    if (a.setHours(0,0,0,0) == today.setHours(0,0,0,0))
        return 'today, ' + hour + ':' + min;
    else if (a.setHours(0,0,0,0) == yesterday.setHours(0,0,0,0))
        return 'yesterday, ' + hour + ':' + min;
    else if (year == today.getFullYear())
        return date + ' ' + month + ', ' + hour + ':' + min;
    else
        return date + ' ' + month + ' ' + year + ', ' + hour + ':' + min;
}

9

40 KB පුස්තකාලයක් අවශ්‍ය නොවන නවීන විසඳුම:

Intl.DateTimeFormat යනු දිනයක් / වේලාවක් සංයුති කිරීම සඳහා සංස්කෘතික නොවන අධිරාජ්‍යවාදී ක්‍රමයකි.

// Setup once
var options = {
    //weekday: 'long',
    //month: 'short',
    //year: 'numeric',
    //day: 'numeric',
    hour: 'numeric',
    minute: 'numeric',
    second: 'numeric'
},
intlDate = new Intl.DateTimeFormat( undefined, options );

// Reusable formatter
var timeStamp = 1412743273;
console.log( intlDate.format( new Date( 1000 * timeStamp ) ) );

සම්බන්ධයෙන් "නොවන සංස්කෘතික අධිරාජ්යවාදී මාර්ගය" : ඔබ අදහස් කරන්නේ නැහැ "-සංස්කෘතික නොවන මෙම හා රාජ්ය නොවන අධිරාජ්යවාදී මාර්ගය" ?
පීටර් මෝර්ටෙන්සන්

අවාසනාවට මෙම ක්‍රමය සෆාරි සමඟ නොගැලපේ.
ස්ටීවන් එස්.

9
function getTIMESTAMP() {
  var date = new Date();
  var year = date.getFullYear();
  var month = ("0" + (date.getMonth() + 1)).substr(-2);
  var day = ("0" + date.getDate()).substr(-2);
  var hour = ("0" + date.getHours()).substr(-2);
  var minutes = ("0" + date.getMinutes()).substr(-2);
  var seconds = ("0" + date.getSeconds()).substr(-2);

  return year + "-" + month + "-" + day + " " + hour + ":" + minutes + ":" + seconds;
}

//2016-01-14 02:40:01

හොඳින් වැඩ කරයි. ස්තූතියි
ව්ලැඩ්

9

මෙය PHP කාලරාමු සමඟ ක්‍රියා කරයි

var d = 1541415288860;
//var d =val.timestamp;

//NB: use + before variable name
var date = new Date(+d);

console.log(d);
console.log(date.toDateString());
console.log(date.getFullYear());
console.log(date.getMinutes());
console.log(date.getSeconds());
console.log(date.getHours());
console.log(date.toLocaleTimeString());

var d =val.timestamp;
var date=new Date(+d); //NB: use + before variable name

console.log(d);
console.log(date.toDateString());
console.log(date.getFullYear());
console.log(date.getMinutes());
console.log(date.getSeconds());
console.log(date.getHours());
console.log(date.toLocaleTimeString());

ඉහත ක්‍රම මඟින් මෙම ප්‍රති .ල ජනනය වේ

1541415288860
Mon Nov 05 2018 
2018 
54 
48 
13
1:54:48 PM

කාලරාමු සමඟ පරිපූර්ණව ක්‍රියා කරන ක්‍රම රාශියක් ඇත. ඒවා සියල්ලම ලැයිස්තු ගත කළ නොහැක


6

සමහර පිළිතුරු සමඟ ඇති ශුන්‍ය ගැටලුව කෙරෙහි අවධානය යොමු කරන්න. උදාහරණයක් ලෙස, කාලරාමුව 1439329773වැරදීමකින් පරිවර්තනය වේ 12/08/2015 0:49.

මෙම ගැටළුව මඟහරවා ගැනීම සඳහා පහත සඳහන් දෑ භාවිතා කිරීමට මම යෝජනා කරමි:

var timestamp = 1439329773; // replace your timestamp
var date = new Date(timestamp * 1000);
var formattedDate = ('0' + date.getDate()).slice(-2) + '/' + ('0' + (date.getMonth() + 1)).slice(-2) + '/' + date.getFullYear() + ' ' + ('0' + date.getHours()).slice(-2) + ':' + ('0' + date.getMinutes()).slice(-2);
console.log(formattedDate);

දැන් ප්‍රති results ල:

12/08/2015 00:49

5
// Format value as two digits 0 => 00, 1 => 01
function twoDigits(value) {
   if(value < 10) {
    return '0' + value;
   }
   return value;
}

var date = new Date(unix_timestamp*1000);
// display in format HH:MM:SS
var formattedTime = twoDigits(date.getHours()) 
      + ':' + twoDigits(date.getMinutes()) 
      + ':' + twoDigits(date.getSeconds());

මෙය අවශ්‍ය වූ විට, ශුන්‍යය පසුපසින් අංකයක් ලබා ගැනීම සඳහා ඔබට අමතර, වෙනම ශ්‍රිතයක් අවශ්‍ය යැයි මම නොසිතමි - මගේ පිළිතුර පහතින් බලන්න.
trejder

2
retrejder, ඔබේ උදාහරණයේ දී, ඔබ තර්කනය අනුපිටපත් කරන අතර අමතර ක්‍රියාකාරිත්වයකින් ඔබ එය එක තැනක තබා ඇත. ඔබ මෙහි සිටින විට සෑම විටම දෙවරක් දින ෆන්ක්ටන් (උදා: getHours ()) අවුලුවයි - එය එක් වරක් ඇමතුමකි. සමහර පුස්තකාල ක්‍රියාකාරිත්වය නැවත ක්‍රියාත්මක කිරීම කෙතරම් බරදැයි ඔබට කිසි විටෙකත් දැනගත නොහැක (කෙසේ වෙතත් එය දින සඳහා ආලෝකය යැයි මම විශ්වාස කරමි).
walv

4
function timeConverter(UNIX_timestamp){
 var a = new Date(UNIX_timestamp*1000);
     var hour = a.getUTCHours();
     var min = a.getUTCMinutes();
     var sec = a.getUTCSeconds();
     var time = hour+':'+min+':'+sec ;
     return time;
 }

4

දිනය / යුගය පරිවර්තකය බලන්න .

ඔබට අවශ්‍යයි ParseInt, එසේ නොමැති නම් එය ක්‍රියා නොකරනු ඇත:


if (!window.a)
    window.a = new Date();

var mEpoch = parseInt(UNIX_timestamp);

if (mEpoch < 10000000000)
    mEpoch *= 1000;

------
a.setTime(mEpoch);
var year = a.getFullYear();
...
return time;

4

ඔබේ කාලරාමුව HH:MM:SSආකෘතියට පරිවර්තනය කිරීම සඳහා ඔබට පහත ශ්‍රිතය භාවිතා කළ හැකිය :

var convertTime = function(timestamp, separator) {
    var pad = function(input) {return input < 10 ? "0" + input : input;};
    var date = timestamp ? new Date(timestamp * 1000) : new Date();
    return [
        pad(date.getHours()),
        pad(date.getMinutes()),
        pad(date.getSeconds())
    ].join(typeof separator !== 'undefined' ?  separator : ':' );
}

බෙදුම්කරුවෙකු පසු නොකර, එය :(පෙරනිමි) බෙදුම්කරු ලෙස භාවිතා කරයි :

time = convertTime(1061351153); // --> OUTPUT = 05:45:53

ඔබට /බෙදුම්කරුවෙකු ලෙස භාවිතා කිරීමට අවශ්‍ය නම් , එය දෙවන පරාමිතිය ලෙස සම්මත කරන්න:

time = convertTime(920535115, '/'); // --> OUTPUT = 09/11/55

නිරූපණය

var convertTime = function(timestamp, separator) {
    var pad = function(input) {return input < 10 ? "0" + input : input;};
    var date = timestamp ? new Date(timestamp * 1000) : new Date();
    return [
        pad(date.getHours()),
        pad(date.getMinutes()),
        pad(date.getSeconds())
    ].join(typeof separator !== 'undefined' ?  separator : ':' );
}

document.body.innerHTML = '<pre>' + JSON.stringify({
    920535115 : convertTime(920535115, '/'),
    1061351153 : convertTime(1061351153, ':'),
    1435651350 : convertTime(1435651350, '-'),
    1487938926 : convertTime(1487938926),
    1555135551 : convertTime(1555135551, '.')
}, null, '\t') +  '</pre>';

මෙම ෆෙඩෙල් ද බලන්න .


3

function getDateTimeFromTimestamp(unixTimeStamp) {
    let date = new Date(unixTimeStamp);
    return ('0' + date.getDate()).slice(-2) + '/' + ('0' + (date.getMonth() + 1)).slice(-2) + '/' + date.getFullYear() + ' ' + ('0' + date.getHours()).slice(-2) + ':' + ('0' + date.getMinutes()).slice(-2);
}

const myTime = getDateTimeFromTimestamp(1435986900000);
console.log(myTime); // output 01/05/2000 11:00


මෙය යුනික්ස් කාලරාමුව නොවේ: 1435986900000 / මෙය යුනික්ස් කාලරාමුවකි: 1435986900
ඔරිසි

මෙම විසඳුම මා වෙනුවෙන් ක්‍රියාත්මක වන නමුත් අංක වෙනුවට පෙබරවාරි මාර්තු අප්‍රේල් වැනි මාසය ගන්නේ කෙසේද?
abidinberkay

2

ඔබට යුනික්ස් කාල සීමාව සැබෑ පැය, මිනිත්තු සහ තත්පර බවට පරිවර්තනය කිරීමට අවශ්‍ය නම්, ඔබට පහත කේතය භාවිතා කළ හැකිය:

var hours = Math.floor(timestamp / 60 / 60);
var minutes = Math.floor((timestamp - hours * 60 * 60) / 60);
var seconds = Math.floor(timestamp - hours * 60 * 60 - minutes * 60 );
var duration = hours + ':' + minutes + ':' + seconds;

සඳහා timestamp=1592426697පැය (= 442340) වැරදි අංකය ලබා දෙන - ඔබ විසින් අදාල කරුණ නිවැරදි කළ හැක්කේ කෙසේද?
Kamil Kiełczewski

1
function getDateTime(unixTimeStamp) {

    var d = new Date(unixTimeStamp);
    var h = (d.getHours().toString().length == 1) ? ('0' + d.getHours()) : d.getHours();
    var m = (d.getMinutes().toString().length == 1) ? ('0' + d.getMinutes()) : d.getMinutes();
    var s = (d.getSeconds().toString().length == 1) ? ('0' + d.getSeconds()) : d.getSeconds();

    var time = h + '/' + m + '/' + s;

    return time;
}

var myTime = getDateTime(1435986900000);
console.log(myTime); // output 01/15/00

1

පහත කේතය ඉලක්කම් 3 මිලිසෙක්ස් ද සපයයි, එය කොන්සෝල ලොග් උපසර්ග සඳහා වඩාත් සුදුසු වේ:

const timeStrGet = date => {
    const milliSecsStr = date.getMilliseconds().toString().padStart(3, '0') ;
    return `${date.toLocaleTimeString('it-US')}.${milliSecsStr}`;
};

setInterval(() => console.log(timeStrGet(new Date())), 299);


1

moment.js

කාලරාමු js හි අද දිනට පරිවර්තනය කරන්න

https://momentjs.com/

moment().format('YYYY-MM-DD hh:mm:ss');
// "2020-01-10 11:55:43"

moment(1578478211000).format('YYYY-MM-DD hh:mm:ss');
// "2020-01-08 06:10:11"


1

@ ඇරොන් විසින් දෙන ලද පිළිතුර, නමුත් 1980 සිට කාලරාමුව පරිවර්තනය කිරීමට උත්සාහ කරන බැවින් එය මට සාර්ථක වූයේ නැත. එබැවින් මම පහත සඳහන් වෙනස්කම් කිහිපයක් සිදු කළෙමි

function ConvertUnixTimeToDateForLeap(UNIX_Timestamp) {
    var dateObj = new Date(1980, 0, 1, 0, 0, 0, 0);
    dateObj.setSeconds(dateObj.getSeconds() + UNIX_Timestamp);
    return dateObj;  
}

document.body.innerHTML = 'TimeStamp : ' + ConvertUnixTimeToDateForLeap(1269700200);

ඔබට තවත් දශකයක සිට ආරම්භ වන කාලරාමුව තිබේ නම්, මෙය භාවිතා කරන්න. එය මට විශාල හිසරදයක් ඉතිරි කළේය.


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.