разделить строку, используя несколько символов - PullRequest
2 голосов
/ 14 февраля 2011

что мне нужно, это простая вещь, у меня есть строка, которая содержит данные - время, извлеченное из mySQL в формате mySQL HH: MM: SS YY-MM-DD, мне нужно разделить эту строку в ActionScript на массив чисел, подобный этому HH М.М. SS YY М.М. ДД

так что я могу сравнить его с текущим временем, любой, кто знает, как сначала разделить, используя несколько разделителей, а затем сравнить с текущим временем. это моя работа до сих пор

            var param:Array = datetime.split(" :-");

            var currentTime:Date = new Date();
            var seconds:uint = currentTime.getSeconds();
            var minutes:uint = currentTime.getMinutes();
            var hours:uint = currentTime.getHours();
            var days:uint = currentTime.getDay();
            var monthes:uint = currentTime.getMonth();
            var years:uint = currentTime.getFullYear();

            if(int(param[3]) > years)
                return years + " سنة ";
            if(int(param[4]) > monthes)
                return monthes + " شهر ";
            if(int(param[5]) > days)
                return days + " يوم ";
            if(int(param[0]) > hours)
                return hours + " ساعة ";
            if(int(param[1]) > minutes)
                return minutes + " دقيقة ";
            if(int(param[2]) > seconds)
                return seconds + " ثانية ";

            return param[0] + " يوم "; 

`

Ответы [ 3 ]

2 голосов
/ 14 февраля 2011

Разделение позволяет разделителю быть регулярным выражением, так что вы можете сказать то или иное.Примерно так:

myStr.split(/:|-/)

Удачи!

1 голос
/ 05 апреля 2015

Вы можете использовать несколько символов, разделяя их пробелом |

myStr.split(/:|-|[|\(|\)]/)

, убедитесь, что вы используете \, если вы используете () и аналогичные, поэтому ()

0 голосов
/ 14 февраля 2011

Чтобы решить свой конкретный вопрос, вы можете подумать о замене символов на одинаковые, а затем разделить их на этот. Используйте datetime.replace(/[ :-]/g, "|"), а затем разделите на «|». (Я не проверял правильность регулярного выражения). То, что говорит Тайлер, более элегантно: datetime.split(/[ -:]/). Я остаюсь, хотя:

Что выводит MySQL (через php?) - это стандартное обозначение даты. Вы можете попробовать использовать Date.parse (dateString) , чтобы получить из него временную метку и преобразовать ее в объект даты, передав его в качестве единственного параметра конструктора:

recordedTime = new Date(Date.parse(datetime));

Затем вы можете сравнить два объекта даты напрямую.

if (recordedTime.getFullYear() > currentTime.getFullYear()) { ... }

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...