origami נוסחאות PHP באוריגמי

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

וכעת יש לי שאלה בנושא, מאחר ואני לא מגדולי המבינים בPHP, אשמח לעזרתכם:

נתון לי שדה לוח שנה, שבו ישנה אפשרות של הגדרת 2 פורמטים.
1. אירוע שמוגדר כתאריך אחד בעל משך של דקות, בנוסף מוגדר כאירוע חוזר, כל שבוע ביום מסוים עד לתאריך מסויים שבו ייפסק האירוע החוזר.
1724602660800.png


כעת יש לי שדה נוסחה של "סטטוס", (הסתיים / פעיל / מתוכנן)

ועלי- כמה פשוט, להגדיר את הסטטוס לפי התאריך בשדה לוח שנה:
"הסתיים" - עבור אירוע חוזר שתאריך הסיום עבר.
"פעיל"- עבור תאריך האירוע שכבר החל, אך תאריך הסיום עדיין עתיד לבוא.
"פעיל - היום" עבור מה שחל על הכלל של "פעיל", אך בנוסף- היום בשבוע תואם ליום בשבוע שנקבע בהגדרת שדה לוח שנה.

"מתוכנן"- עבור תאריכי התחלה וסיום עתידיים.
"בוטל" - עבור אפשרות ששדה "איקס" סומן.


2. בנוסף, קיימת אפשרות שיוגדר אירוע שאינו חוזר, המוגדר למשך דקות בלבד בתאריך מסויים, שהסטטוס ישתנה בהתאם לתאריך הנוכחי.

@מוישי שובקס @David Hadas @rabin וכל מי שמתמצא,
תודה רבה.
 
נערך לאחרונה ב:
  • הוסף לסימניות
  • #3
אירוע חוזר הוא תצוגה בלבד. כלומר הערך ה"רשמי" בשדה הוא הערך רק של האירוע הראשון (אם נבקש בשדה נוסחה את שדה לוח שנה, הוא יחזיר רק את האירוע הראשון), והמשמעות של החוזר הוא בעיקר לתצוגת לוח שנה.
המקום היחיד שניתן לבודקו כהגדרה, הוא או בממשק השדה או בקריאת API.
לכן זה בעיה לטפל בנתון הזה.

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

אם יש צורך בדווקא להשתמש באירוע חוזר, אפשר לבצע תהליך יומי (התניה מתוזמנת) של קריאה למייק שבודק את כל הנתונים של אירוע חוזר, ומחשב האם היום יש כזה אירוע, ומעדכן שדה טקסט (או בחירה) בסטטוס המתאים.
רק כמובן שזה חישוב די מורכב וגם אופרציות כל יום במייק על כל מופע (אם כי אפשר להגדיר שאירוע שכל החזרות שלו עברו והוא בסטטוס עבר - לא ישלח קריאה למייק).
 
  • הוסף לסימניות
  • #4
אם זה אירוע לא חוזר אפשר להשתמש בשדה נוסחה שמצביע (##) על שדה הלוח שנה,
ואז מפרמט את התאריך גם של ההתחלה וגם של הסיום, ובודק האם התאריך הנוכחי הוא גדול / קטן מהם.
ניסיתי דרך המחולל ולא ממש הצליח לי, יש לכם רעיון של נוסחה כזו מוכנה כבר?
תודה
 
  • הוסף לסימניות
  • #5
תנסי את זה. יותר טוב מהמחולל. נותן נוסחאות מצוינות לאוריגמי
 
נערך לאחרונה ב:
  • הוסף לסימניות
  • #6
תנסי את זה. יותר טוב מהמחולל. נותן נוסחאות מצוינות לאוריגמי.
הקישור לא תקין, התכוונת לסוכן של ג'יפיטי, או לג'יפיטי הרגיל?
אם זה סוכן שלו, אשמח שתעלי לפה קישור תקין.
 
  • הוסף לסימניות
  • #7
@חגית מ. תודה.
עובד לי מעולה, במקום שהמחולל נכשל שוב ושוב.
 
  • הוסף לסימניות
  • #8
אני צריך נוסחה (ג'וני ומחולל הנוסחאות לא הצליחו לעזור לי)
יש לי שני שדות תאריך וזמן
אני צריך את ההפרש בין שני השדות הללו בשעות ודקות
(אם יש הפרש גם של ימים אז להמיר כל יום כ 24 שעות נוספים)
מישהו מוכן לנסות לעזור לי?
 
  • הוסף לסימניות
  • #9
תנסה את זה:
שים לב להחליף את כל ההפניות לשדות בהפניות לפי השדות שלך

קוד:
$target =  (strtotime(str_replace('/','-',#תאריך יעד#))/3600);
$now = (strtotime(str_replace('/','-',#זמן עכשווי#))/3600);
$result = $target - $now;

 $integerPart = explode('.', $result)[0];
 $decimalPart = ("0.".explode('.', $result)[1])*60;

$b = explode('.', $decimalPart)[0];

if($b<10) $b1 = "0".$b; else $b1 = $b;

if (strpos($result, '.') !== false && !empty(#תאריך יעד#) && !empty(#זמן עכשווי#)) {
       return $integerPart . ':' .$b1;
} elseif(!empty(#תאריך יעד#) && !empty(#זמן עכשווי#)) {
   return $integerPart . ':' .'00';
} else {
    return "";
}

עריכה: מצאתי עכשיו משהו יותר פשוט (רועי ריבק) תנסה אותו קודם
קוד:
$startTime = strtotime(#תאריך ושעת הפניה#);
$endTime = strtotime(#זמן הטיפול בפניה#);

$timeDiff = $endTime - $startTime;
$timeFormat = date("H:i:s", abs($timeDiff));

return $timeFormat
 
  • הוסף לסימניות
  • #10
תנסה את זה:
שים לב להחליף את כל ההפניות לשדות בהפניות לפי השדות שלך

קוד:
$target =  (strtotime(str_replace('/','-',#תאריך יעד#))/3600);
$now = (strtotime(str_replace('/','-',#זמן עכשווי#))/3600);
$result = $target - $now;

 $integerPart = explode('.', $result)[0];
 $decimalPart = ("0.".explode('.', $result)[1])*60;

$b = explode('.', $decimalPart)[0];

if($b<10) $b1 = "0".$b; else $b1 = $b;

if (strpos($result, '.') !== false && !empty(#תאריך יעד#) && !empty(#זמן עכשווי#)) {
       return $integerPart . ':' .$b1;
} elseif(!empty(#תאריך יעד#) && !empty(#זמן עכשווי#)) {
   return $integerPart . ':' .'00';
} else {
    return "";
}

עריכה: מצאתי עכשיו משהו יותר פשוט (רועי ריבק) תנסה אותו קודם
קוד:
$startTime = strtotime(#תאריך ושעת הפניה#);
$endTime = strtotime(#זמן הטיפול בפניה#);

$timeDiff = $endTime - $startTime;
$timeFormat = date("H:i:s", abs($timeDiff));

return $timeFormat
הראשון עובד!!!!!!!!!!!
השני יש שגיאה בשורה 7
 
  • הוסף לסימניות
  • #11
@David Hadas אמנם עובד, אבל לא הביא לי את התוצאה המתבקשת
אני רוציתי לעשות ווידג'ט שמציג לי ממוצע של זמן טיפול בפניות
חשבתי שאם אעשה ממוצע על שדה הנוסחה הזה ב KPI הוא יביא לי את סך השעות הממוצע
הבעיה היא שהוא מחזיר לי 0
 
  • הוסף לסימניות
  • #12
השני יש שגיאה - תוסיף בסוף בסוף את הסימן ;

לגבי הממוצע,
אז תעשה נוסחה אחרת שתחשב לפי דקות בלבד (או לפי שעות בלבד),
לא שעות:דקות
ואז תוכל לבסס על זה חישוב ממוצע

הנוסחה הבאה לפי שעות (לדקות, יש להחליף את ה3600 ב-60)
קוד:
$reminder = strtotime(str_replace('/','-',#לידה#))/3600;
$now = strtotime(str_replace('/','-',#נוכחי#))/3600;
$difference = $now - $reminder;
return  $difference ;
 
  • הוסף לסימניות
  • #13
השני יש שגיאה - תוסיף בסוף בסוף את הסימן ;

לגבי הממוצע,
אז תעשה נוסחה אחרת שתחשב לפי דקות בלבד (או לפי שעות בלבד),
לא שעות:דקות
ואז תוכל לבסס על זה חישוב ממוצע

הנוסחה הבאה לפי שעות (לדקות, יש להחליף את ה3600 ב-60)
קוד:
$reminder = strtotime(str_replace('/','-',#לידה#))/3600;
$now = strtotime(str_replace('/','-',#נוכחי#))/3600;
$difference = $now - $reminder;
return  $difference ;
אז בעצם אין פיתרון להצגה נורמלית של ממוצע זמן?
 

פרוגבוט

תוכן שיווקי
פרסומת

הצטרפות לניוזלטר

איזה כיף שהצטרפתם לניוזלטר שלנו!

מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!

לוח מודעות

הפרק היומי

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


תהילים פרק כה

אלְדָוִד אֵלֶיךָ יי נַפְשִׁי אֶשָּׂא:באֱלֹהַי בְּךָ בָטַחְתִּי אַל אֵבוֹשָׁה אַל יַעַלְצוּ אֹיְבַי לִי:גגַּם כָּל קוֶֹיךָ לֹא יֵבֹשׁוּ יֵבֹשׁוּ הַבּוֹגְדִים רֵיקָם:דדְּרָכֶיךָ יי הוֹדִיעֵנִי אֹרְחוֹתֶיךָ לַמְּדֵנִי:ההַדְרִיכֵנִי בַאֲמִתֶּךָ וְלַמְּדֵנִי כִּי אַתָּה אֱלֹהֵי יִשְׁעִי אוֹתְךָ קִוִּיתִי כָּל הַיּוֹם:וזְכֹר רַחֲמֶיךָ יי וַחֲסָדֶיךָ כִּי מֵעוֹלָם הֵמָּה:זחַטֹּאות נְעוּרַי וּפְשָׁעַי אַל תִּזְכֹּר כְּחַסְדְּךָ זְכָר לִי אַתָּה לְמַעַן טוּבְךָ יי:חטוֹב וְיָשָׁר יי עַל כֵּן יוֹרֶה חַטָּאִים בַּדָּרֶךְ:טיַדְרֵךְ עֲנָוִים בַּמִּשְׁפָּט וִילַמֵּד עֲנָוִים דַּרְכּוֹ:יכָּל אָרְחוֹת יי חֶסֶד וֶאֱמֶת לְנֹצְרֵי בְרִיתוֹ וְעֵדֹתָיו:יאלְמַעַן שִׁמְךָ יי וְסָלַחְתָּ לַעֲוֹנִי כִּי רַב הוּא:יבמִי זֶה הָאִישׁ יְרֵא יי יוֹרֶנּוּ בְּדֶרֶךְ יִבְחָר:יגנַפְשׁוֹ בְּטוֹב תָּלִין וְזַרְעוֹ יִירַשׁ אָרֶץ:ידסוֹד יי לִירֵאָיו וּבְרִיתוֹ לְהוֹדִיעָם:טועֵינַי תָּמִיד אֶל יי כִּי הוּא יוֹצִיא מֵרֶשֶׁת רַגְלָי:טזפְּנֵה אֵלַי וְחָנֵּנִי כִּי יָחִיד וְעָנִי אָנִי:יזצָרוֹת לְבָבִי הִרְחִיבוּ מִמְּצוּקוֹתַי הוֹצִיאֵנִי:יחרְאֵה עָנְיִי וַעֲמָלִי וְשָׂא לְכָל חַטֹּאותָי:יטרְאֵה אוֹיְבַי כִּי רָבּוּ וְשִׂנְאַת חָמָס שְׂנֵאוּנִי:כשָׁמְרָה נַפְשִׁי וְהַצִּילֵנִי אַל אֵבוֹשׁ כִּי חָסִיתִי בָךְ:כאתֹּם וָיֹשֶׁר יִצְּרוּנִי כִּי קִוִּיתִיךָ:כבפְּדֵה אֱלֹהִים אֶת יִשְׂרָאֵל מִכֹּל צָרוֹתָיו:
נקרא  2  פעמים
למעלה