JS: חישוב הפרשים בין זמנים - timespan
-
יש לי שתי שאלות בנושא:
א. אני מקבל ערך של אובייקט TimeSpan של C# (דרך API) שמייצג לי הפרש זמן בין שעות, (למי שלא מכיר זה נראה כך: 01:30:46, דהיינו שעה וחצי ו46 שניות). אני רוצה לרוץ על מערך של שעות שיש לכל אחד את המאפיין הזה, ולחשב את הסך הכולל שלהם.
איך לעשות את זה? ניסיתי לחפש בסטאק ולא הצלחתי למצוא מזור..ב. בהנחה שיש לי אובייקט שמכיל תאריך התחלה ותאריך סיום, ואני רוצה להציג את ההפרש באופן הזה, איך אפשר לעשות זאת בJS?
תודה מראש!פורסם במקור בפורום CODE613 ב25/07/2017 00:27 (+03:00)
-
א' זה ב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)
-
תודה!
לא הבנתי, אתה אומר שאין אפשרות לעשות זאת בJS? אני מנסה לעשות את זה אצל הלקוח ולא בשרת..
ב. חיפשתי במומנט ולא בדיוק מצאתי.. כי אני לא רוצה להשוות בין שני תאריכים, אלא יש לי מערך שמכיל את כל הזמנים הללו, ופשוט לחשב את כולם.
מדובר בתוכנה שמחשבת שעות עבודה, יש לי מערך שמכיל את כל השעות (תאריך התחלה, סיום וסך השעות), ואני רוצה לסכם את סך השעות הכולל.פורסם במקור בפורום CODE613 ב25/07/2017 00:47 (+03:00)
-
טוב,
אז במומנט התשובה נמצאת בקישור הזה: http://momentjs.com/docs/#/durations/minutes/
צריך להשתמש במאפיין duration, ככה:sum += moment.duration(hour.SumTime).asHours()
פורסם במקור בפורום CODE613 ב25/07/2017 01:00 (+03:00)
-
החל מגירסה 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)
-
אני כעת מבין שיש לך ערך כזה:
{ "SumTime": "12:34:22" }לא מבין למה תקעת פה את TimeSpan מה אכפת מה מקור הסטרינג הזה.
היית צריך לשאול איך אתה הופך את האותיות הללו למספרים ברי סיכום. מבחינת JS זה טקסט לכל דבר.
בשביל לפרש את זה בJS צריך להפוך את זה למספרים עם regex או להשתמש בmoment כפי שהבאת (אני הבאתי אותו לגבי הפוקנציה diff).ב. חיפשתי במומנט ולא בדיוק מצאתי.. כי אני לא רוצה להשוות בין שני תאריכים, אלא יש לי מערך שמכיל את כל הזמנים הללו, ופשוט לחשב את כולם.
אתה לארוצה להשוות בין תאריכים? והלא:
@avr416ב. בהנחה שיש לי אובייקט שמכיל תאריך התחלה ותאריך סיום, ואני רוצה להציג את ההפרש באופן הזה, איך אפשר לעשות זאת בJS?
פורסם במקור בפורום CODE613 ב25/07/2017 01:12 (+03:00)
-
זה בידיים שלי, הטיקים והמילי שניות זה אותו דבר?
בשאלה הראשונה אני אכן לא רוצה להשוות בין תאריכים, כי ההשוואה כבר נעשתה בשרת, ואני רק רוצה לסכם את הסך הכולל.
בשאלה השניה, אני אכן שואל איך להשוות בין התאריכים, כדי גם את זה להעביר לצד הלקוח ולוותר על החישוב בשרת.
פורסם במקור בפורום CODE613 ב25/07/2017 01:21 (+03:00)
-
טיקים זה מאות ננו שניות (מילישניה = 10 אלף טיקים). אני לא אמרתי טיקים אמרתי מילי שניות.
בjs האובייקט date בבנאי שלו הוא מקבל מילישניות, וגם הוא עצמו מייצג מילישניות - אפשר לחבר לחסר תאריכים והערך המתקבל הוא ההפרש במילישניות.פורסם במקור בפורום CODE613 ב25/07/2017 01:27 (+03:00)