דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. JS: חישוב הפרשים בין זמנים - timespan

JS: חישוב הפרשים בין זמנים - timespan

מתוזמן נעוץ נעול הועבר ארכיון code613m
9 פוסטים 2 כותבים 761 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • A מנותק
    A מנותק
    avr416
    כתב ב נערך לאחרונה על ידי
    #1

    יש לי שתי שאלות בנושא:

    א. אני מקבל ערך של אובייקט TimeSpan של C# (דרך API) שמייצג לי הפרש זמן בין שעות, (למי שלא מכיר זה נראה כך: 01:30:46, דהיינו שעה וחצי ו46 שניות). אני רוצה לרוץ על מערך של שעות שיש לכל אחד את המאפיין הזה, ולחשב את הסך הכולל שלהם.
    איך לעשות את זה? ניסיתי לחפש בסטאק ולא הצלחתי למצוא מזור..

    ב. בהנחה שיש לי אובייקט שמכיל תאריך התחלה ותאריך סיום, ואני רוצה להציג את ההפרש באופן הזה, איך אפשר לעשות זאת בJS?
    תודה מראש!

    פורסם במקור בפורום CODE613 ב25/07/2017 00:27 (+03:00)

    תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      א' זה בJS, מה שייך TimeSpan בJS? או בC#?
      בC# תחבר את הטיקים:

      TimeSpan.FromTicks( arr.Sum(x => x.Ticks))
      

      ב' תחסר אחד מהשני, התוצאה היא מס' המילי שניות שביניהם. את זה צריך להפוך לימים שזה לחלק למילי שניות שיש ביום (24 שעות * 60 דקות * 60 שניות * 1000 = 86400000).
      או תבנה מזה date חדש (הוא מקבל בבנאי שלו מס' מילי שניות) ואז זה הפרש הזמן אחרי 1970 שזה זמן ה0 בjs.

      או, כמו התשובה המורגלת, תשתמש בmoment...

      פורסם במקור בפורום CODE613 ב25/07/2017 00:44 (+03:00)

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      2
      • A מנותק
        A מנותק
        avr416
        כתב ב נערך לאחרונה על ידי
        #3

        תודה!
        לא הבנתי, אתה אומר שאין אפשרות לעשות זאת בJS? אני מנסה לעשות את זה אצל הלקוח ולא בשרת..
        ב. חיפשתי במומנט ולא בדיוק מצאתי.. כי אני לא רוצה להשוות בין שני תאריכים, אלא יש לי מערך שמכיל את כל הזמנים הללו, ופשוט לחשב את כולם.
        מדובר בתוכנה שמחשבת שעות עבודה, יש לי מערך שמכיל את כל השעות (תאריך התחלה, סיום וסך השעות), ואני רוצה לסכם את סך השעות הכולל.

        פורסם במקור בפורום CODE613 ב25/07/2017 00:47 (+03:00)

        תגובה 1 תגובה אחרונה
        0
        • A מנותק
          A מנותק
          avr416
          כתב ב נערך לאחרונה על ידי
          #4

          טוב,
          אז במומנט התשובה נמצאת בקישור הזה: http://momentjs.com/docs/#/durations/minutes/
          צריך להשתמש במאפיין duration, ככה:

          sum += moment.duration(hour.SumTime).asHours()
          

          פורסם במקור בפורום CODE613 ב25/07/2017 01:00 (+03:00)

          תגובה 1 תגובה אחרונה
          0
          • A מנותק
            A מנותק
            avr416
            כתב ב נערך לאחרונה על ידי
            #5

            החל מגירסה 2.1 הם הוסיפו תמיכה בפורמט הזה:
            http://momentjs.com/docs/#/durations/creating/

            As of 2.1.0, moment supports parsing ASP.NET style time spans. The following formats are supported.

            The format is an hour, minute, second string separated by colons like 23:59:59. The number of days can be prefixed with a dot separator like so 7.23:59:59. Partial seconds are supported as well 23:59:59.999.

            פורסם במקור בפורום CODE613 ב25/07/2017 01:04 (+03:00)

            תגובה 1 תגובה אחרונה
            0
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              כתב ב נערך לאחרונה על ידי
              #6

              אני כעת מבין שיש לך ערך כזה:
              { "SumTime": "12:34:22" }

              לא מבין למה תקעת פה את TimeSpan מה אכפת מה מקור הסטרינג הזה.
              היית צריך לשאול איך אתה הופך את האותיות הללו למספרים ברי סיכום. מבחינת JS זה טקסט לכל דבר.
              בשביל לפרש את זה בJS צריך להפוך את זה למספרים עם regex או להשתמש בmoment כפי שהבאת (אני הבאתי אותו לגבי הפוקנציה diff).

              @avr416

              ב. חיפשתי במומנט ולא בדיוק מצאתי.. כי אני לא רוצה להשוות בין שני תאריכים, אלא יש לי מערך שמכיל את כל הזמנים הללו, ופשוט לחשב את כולם.

              אתה לארוצה להשוות בין תאריכים? והלא:
              @avr416

              ב. בהנחה שיש לי אובייקט שמכיל תאריך התחלה ותאריך סיום, ואני רוצה להציג את ההפרש באופן הזה, איך אפשר לעשות זאת בJS?

              פורסם במקור בפורום CODE613 ב25/07/2017 01:12 (+03:00)

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              1
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                כתב ב נערך לאחרונה על ידי
                #7

                אם זה בידים שלך תשקול שלא להחזיר את הפורמט הזה של הTimeSpan אלא מספר מילי שניות (TotalMilisecond) ואז אתה מחבר הכל ומציג ע"י מתודות JS פשוטות.

                פורסם במקור בפורום CODE613 ב25/07/2017 01:17 (+03:00)

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                תגובה 1 תגובה אחרונה
                1
                • A מנותק
                  A מנותק
                  avr416
                  כתב ב נערך לאחרונה על ידי
                  #8

                  זה בידיים שלי, הטיקים והמילי שניות זה אותו דבר?

                  בשאלה הראשונה אני אכן לא רוצה להשוות בין תאריכים, כי ההשוואה כבר נעשתה בשרת, ואני רק רוצה לסכם את הסך הכולל.

                  בשאלה השניה, אני אכן שואל איך להשוות בין התאריכים, כדי גם את זה להעביר לצד הלקוח ולוותר על החישוב בשרת.

                  פורסם במקור בפורום CODE613 ב25/07/2017 01:21 (+03:00)

                  תגובה 1 תגובה אחרונה
                  0
                  • dovidD מנותק
                    dovidD מנותק
                    dovid ניהול
                    כתב ב נערך לאחרונה על ידי
                    #9

                    טיקים זה מאות ננו שניות (מילישניה = 10 אלף טיקים). אני לא אמרתי טיקים אמרתי מילי שניות.
                    בjs האובייקט date בבנאי שלו הוא מקבל מילישניות, וגם הוא עצמו מייצג מילישניות - אפשר לחבר לחסר תאריכים והערך המתקבל הוא ההפרש במילישניות.

                    פורסם במקור בפורום CODE613 ב25/07/2017 01:27 (+03:00)

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                    תגובה 1 תגובה אחרונה
                    1

                    בא תתחבר לדף היומי!
                    • התחברות

                    • אין לך חשבון עדיין? הרשמה

                    • התחברו או הירשמו כדי לחפש.
                    • פוסט ראשון
                      פוסט אחרון
                    0
                    • דף הבית
                    • קטגוריות
                    • פוסטים אחרונים
                    • משתמשים
                    • חיפוש
                    • חוקי הפורום