A collection of common JavaScript time functions

Source: Internet
Author: User
Tags diff

  • Code:
    /* @desc: Time-Date function set @author [Lee] <[<[email protected]>]>*/function datetime () {/* @desc: Internal method, less than 10 complement 0 @ param input value @return ret converted value */this.parsetime = function (input) {var ret if (input >= 0 && input &L T {ret = ' 0 ' +input}else{ret = input} return ret}/* @desc: Time @param time prefix, 10-bit @return re T time, in the format: 2018-01-01 00:00:00 */this.timetostr = function (time) {var = (times)? ( Time):(Math.Round (new date () GetTime ()/1000) var date = new Date (time*1000) var year = This.parsetime (date.getfully Ear ()) var month = This.parsetime (Date.getmonth () +1) var day = This.parsetime (Date.getdate ()) var hour = This.par Setime (Date.gethours ()) var minute = This.parsetime (Date.getminutes ()) var second = This.parsetime (Date.getseconds () var ret = year+ '-' +month+ '-' +day+ ' +hour+ ': ' +minute+ ': ' +second return ret}/* @desc: Time-to-time suffix @param str time string @retur N Time Prefix */this.strtotime = function (str) {var date = new DAte (str) var year = This.parsetime (Date.getfullyear ()) if (/^\d{4} (-\d{2} (-\d{2})?)? \s\d{2}:\d{2} (:)? (         \d{2})? $/.test (str)) {var month = This.parsetime (Date.getmonth () +1) var day = This.parsetime (Date.getdate ())  var hour = This.parsetime (Date.gethours ()) var minute = This.parsetime (Date.getminutes ()) var second = This.parsetime (Date.getseconds ())}else{var month = This.parsetime (Date.getutcmonth () +1) var day = th Is.parsetime (Date.getutcdate ()) var hour = This.parsetime (Date.getutchours ()) var minute = This.parsetime (da Te.getutcminutes ()) var second = This.parsetime (Date.getutcseconds ())} str = year+ '-' +month+ '-' +day+ ' +hour + ': ' +minute+ ': ' +second date = new Date (str) var time = Date.gettime (). toString () time = Time.slice (0,10) retur     N time}/* @desc: Time difference @param sstr start, string @param estr end time, string @return ret difference, unit: Second */this.timediff = function (sstr,estr) {   var stime = this.strtotime (SSTR) var etime = this.strtotime (estr) var ret = etime-stime return ret}/* @desc: Time add function @param dur margin, such as: -1year +2month  @param time, 1, time prefix, 2, time string @return ret time, Format: 2018-01-01 00:00:00 */this.dateadd = function (Dur,time = false) {var Test_year =/(-)? \d+ (\s)? year (s)?/.exec (dur) var test_month =/(-)? \d+ (\s)? month (s)?/.exec (dur) var test_day =/(-) ? \d+ (\s)? Day (s)?/.exec (dur) var test_hour =/(-)? \d+ (\s)? Hour (s)?/.exec (dur) var test_minute =/(-)? \d+ (\s)? Minute (s     )?/.exec (dur) var test_second =/(-)? \d+ (\s)? second (s)?/.exec (dur) test_year = (!test_year)? 0:parseint (Test_year[0)) Test_month = (!test_month)? 0:parseint (test_month[0]) Test_day = (!test_day)? 0:parseint (test_day[0]) Test_hour = (!test_hour)? 0:parseint (test_hour[0]) Test_minute = (!test_minute)? 0:parseint (test_minute[0]) Test_second = (!test_s Econd) 0:parseint (test_second[0]) var outtime if (time) {if ((typeof (time) = = ' string ') | | (Time instanceof String)) && (/^\d{4}(-\d{2} (-\d{2})?)? (\s)? (\d{2})? (:)? (\d{2})? (:)? (\d{2}) $/.test (time)) {outtime = new Date (time) outtime.setfullyear (parseint (Outtime.getfullyear () ) + test_year) outtime.setmonth (parseint (Outtime.getmonth ()) + Test_month) outtime.setdate (parseint ( Outtime.getdate ()) + Test_day) outtime.sethours (parseint (Outtime.gethours ()) + Test_hour) outtime.se Tminutes (parseint (Outtime.getminutes ()) + Test_minute) outtime.setseconds (parseint (Outtime.getseconds ()) + test _second) var month = This.parsetime (parseint (Outtime.getutcmonth ()) +1) var date = This.parsetime (par  Seint (Outtime.getutcdate ())) var hour = This.parsetime (parseint (Outtime.getutchours ())) var minute = This.parsetime (parseint (Outtime.getutcminutes ())) var second = This.parsetime (parseint (Outtime.getutcseconds () ))}else{outtime = new Date (time*1000) outtime.setfullyear (parseint (oUttime.getfullyear ()) + test_year) outtime.setmonth (parseint (Outtime.getmonth ()) + Test_month) Outti            Me.setdate (parseint (Outtime.getdate ()) + Test_day) outtime.sethours (parseint (Outtime.gethours ()) + Test_hour) Outtime.setminutes (parseint (Outtime.getminutes ()) + Test_minute) outtime.setseconds (parseint (outtime). Getseconds ()) + Test_second) var month = This.parsetime (parseint (Outtime.getmonth ()) +1) var date = t His.parsetime (parseint (Outtime.getdate ())) var hour = This.parsetime (parseint (Outtime.gethours ())) v AR minute = This.parsetime (parseint (Outtime.getminutes ())) var second = This.parsetime (parseint (Outtime.getseco NDS ()))}}else{outtime = new Date () outtime.setfullyear (parseint (Outtime.getfullyear ()) + test_y  Ear) Outtime.setmonth (parseint (Outtime.getmonth ()) + Test_month) outtime.setdate (parseint (Outtime.getdate ()) + test_day) OuttIme.sethours (parseint (Outtime.gethours ()) + Test_hour) outtime.setminutes (parseint (Outtime.getminutes ()) + Test_min Ute) Outtime.setseconds (parseint (Outtime.getseconds ()) + Test_second) var month = this.parsetime (parseint (ou Ttime.getmonth ()) +1) var date = This.parsetime (parseint (Outtime.getdate ())) var hour = This.parsetime (Parsei NT (Outtime.gethours ())) var minute = This.parsetime (parseint (Outtime.getminutes ())) var second = This.parset IME (parseint (Outtime.getseconds ())} var year = Outtime.getfullyear () var ret = year+ '-' +month+ '-' +date+ ' +hour + ': ' +minute+ ': ' +second return ret}/* @desc: Find the time of year/month/day @param the time passed in, in the format: 2018|2018-01|2018-01-01 @return ret stime: Open Start time prefix, etime: end time suffix */this.timeswitch = function (timestamp) {if (/^\d{4}$/.test) {//year var stime = This.strtotime (        Time) var etime = This.strtotime (This.dateadd (' +1year ', time))}else if (/^\d{4}-{1}\d{1,2}$/.test (time)) {//month var stime = THIS.STrtotime (time) var etime = This.strtotime (This.dateadd (' +1month ', time))}else if (/^\d{4}-{1}\d{1,2}-{1}\d{1,2}$/    . Test (time)) {//day var stime = This.strtotime (time) var etime = This.strtotime (This.dateadd (' +1day ', Time))    }else{//Format error return false; } var ret = {stime:stime, etime:etime} return ret}/* @desc: time-friendly display function @param stamp time-prefix, 10-bit @return    The time after the RET conversion is displayed */this.timefriend = function (stamp) {if (!stamp) {return '-'; var date = new Date (stamp*1000) var time = Math.Round (new date (). GetTime ()/1000) diff = Time-stamp if (diff    <0) {return '-'; }else if (diff<60) {return diff+ ' seconds ago '}else if (diff<3600) {return Math.floor (DIFF/60) + ' minutes ago '}else if (diff<86400) {return Math.floor (diff/3600) + ' hour ago '}else if (diff<259200) {return Math.floor (diff/86 400) + ' days ago '}else{var year = This.parsetime (Date.getfullyear ()) var month = This.parsetime (dAte.getmonth () +1) var day = This.parsetime (Date.getdate ()) var hour = This.parsetime (Date.gethours ()) var minute = This.parsetime (Date.getminutes ()) var second = This.parsetime (Date.getseconds ()) var ret = yea r+ '-' +month+ '-' +day+ ' +hour+ ': ' +minute+ ': ' +second return ret}}}
  • Test:
    var datetime = new datetime()var ret1 = datetime.timetostr(1528593779)var ret2 = datetime.strtotime(‘2018‘)var ret3 = datetime.timediff(‘2017‘,‘2018-06‘)var ret4 = datetime.dateadd(‘-1year‘,‘2018‘)var ret5 = datetime.timeswitch(‘2018-06‘)var ret6 = datetime.timefriend(1528593779)console.log(ret1)console.log(ret2)console.log(ret3)console.log(ret4)console.log(ret5)console.log(ret6)
  • Output:
    2018-06-10 09:22:591514736000445824002017-01-01 00:00:00{ stime: ‘1527782400‘, etime: ‘1530374400‘ }1天前
  • A collection of common JavaScript time functions

    Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.